Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/less.tar
Назад
template.less 0000604 00000007047 15245530473 0007263 0 ustar 00 // CSS Reset @import "../../../../media/jui/less/reset.less"; // Core variables and mixins @import "variables.less"; // Custom for this template @import "bootstrap/mixins.less"; // Grid system and page structure @import "../../../../media/jui/less/scaffolding.less"; @import "../../../../media/jui/less/grid.less"; @import "../../../../media/jui/less/layouts.less"; // Base CSS @import "../../../../media/jui/less/type.less"; @import "../../../../media/jui/less/code.less"; @import "../../../../media/jui/less/forms.less"; @import "../../../../media/jui/less/tables.less"; // Components: common // @import "../../../../media/jui/less/sprites.less"; @import "../../../../media/jui/less/dropdowns.less"; @import "bootstrap/wells.less"; @import "../../../../media/jui/less/component-animations.less"; @import "../../../../media/jui/less/close.less"; // Components: Buttons & Alerts @import "bootstrap/buttons.less"; @import "bootstrap/button-groups.less"; @import "../../../../media/jui/less/alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less // Components: Nav @import "../../../../media/jui/less/navs.less"; @import "../../../../media/jui/less/navbar.less"; @import "../../../../media/jui/less/breadcrumbs.less"; @import "../../../../media/jui/less/pagination.less"; @import "../../../../media/jui/less/pager.less"; // Components: Popovers @import "../../../../media/jui/less/modals.less"; @import "../../../../media/jui/less/tooltip.less"; @import "../../../../media/jui/less/popovers.less"; // Components: Misc @import "../../../../media/jui/less/thumbnails.less"; @import "../../../../media/jui/less/media.less"; @import "../../../../media/jui/less/labels-badges.less"; @import "../../../../media/jui/less/progress-bars.less"; @import "../../../../media/jui/less/accordion.less"; @import "../../../../media/jui/less/carousel.less"; @import "../../../../media/jui/less/hero-unit.less"; // Utility classes @import "../../../../media/jui/less/utilities.less"; // RESPONSIVE CLASSES // ------------------ @import "../../../../media/jui/less/responsive-utilities.less"; // MEDIA QUERIES // ------------------ // Phones to portrait tablets and narrow desktops @import "../../../../media/jui/less/responsive-767px-max.less"; // Tablets to regular desktops @import "bootstrap/responsive-768px-979px.less"; // Large desktops @import "bootstrap/responsive-1200px-min.less"; // RESPONSIVE NAVBAR // ------------------ // From 979px and below, show a button to toggle navbar contents @import "../../../../media/jui/less/responsive-navbar.less"; // Extended for JUI @import "../../../../media/jui/less/bootstrap-extended.less"; // Has to be last to override when necessary // div.modal (instead of .modal) @import "../../../../media/jui/less/modals.joomla.less"; @import "../../../../media/jui/less/responsive-767px-max.joomla.less"; // Icon Font @import "icomoon.less"; // Blocks @import "blocks/_global.less"; @import "blocks/_chzn-override.less"; @import "blocks/_editors.less"; @import "blocks/_forms.less"; @import "blocks/_header.less"; @import "blocks/_login.less"; @import "blocks/_media.less"; @import "blocks/_modals.less"; @import "blocks/_navbar.less"; @import "blocks/_quickicons.less"; @import "blocks/_sidebar.less"; @import "blocks/_status.less"; @import "blocks/_tables.less"; @import "blocks/_toolbar.less"; @import "blocks/_treeselect.less"; @import "blocks/_utility-classes.less"; @import "blocks/_custom.less"; // Pages @import "pages/_com_cpanel.less"; @import "pages/_com_postinstall.less"; @import "pages/_com_privacy.less"; @import "pages/_com_templates.less"; variables.less 0000604 00000065603 15245530473 0007422 0 ustar 00 // stylelint-disable value-keyword-case // // Variables // -------------------------------------------------- //== Colors // //## Gray and brand colors for use across Bootstrap. @gray-base: #000; @gray-darker: lighten(@gray-base, 13.5%); // #222 @gray-dark: lighten(@gray-base, 20%); // #333 @gray: lighten(@gray-base, 33.5%); // #555 @gray-light: lighten(@gray-base, 46.7%); // #777 @gray-lighter: lighten(@gray-base, 93.5%); // #eee @brand-primary: darken(#428bca, 6.5%); // #337ab7 @brand-success: #5cb85c; @brand-info: #5bc0de; @brand-warning: #f0ad4e; @brand-danger: #d9534f; //== Scaffolding // //## Settings for some of the most global styles. //** Background color for `<body>`. @body-bg: #fff; //** Global text color on `<body>`. @text-color: @gray-dark; //** Global textual link color. @link-color: @brand-primary; //** Link hover color set via `darken()` function. @link-hover-color: darken(@link-color, 15%); //** Link hover decoration. @link-hover-decoration: underline; //== Typography // //## Font, line-height, and color for body text, headings, and more. @font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; @font-family-serif: Georgia, "Times New Roman", Times, serif; //** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`. @font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace; @font-family-base: @font-family-sans-serif; @font-size-base: 14px; @font-size-large: ceil((@font-size-base * 1.25)); // ~18px @font-size-small: ceil((@font-size-base * .85)); // ~12px @font-size-h1: floor((@font-size-base * 2.6)); // ~36px @font-size-h2: floor((@font-size-base * 2.15)); // ~30px @font-size-h3: ceil((@font-size-base * 1.7)); // ~24px @font-size-h4: ceil((@font-size-base * 1.25)); // ~18px @font-size-h5: @font-size-base; @font-size-h6: ceil((@font-size-base * .85)); // ~12px //** Unit-less `line-height` for use in components like buttons. @line-height-base: 1.428571429; // 20/14 //** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc. @line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px //** By default, this inherits from the `<body>`. @headings-font-family: inherit; @headings-font-weight: 500; @headings-line-height: 1.1; @headings-color: inherit; //== Iconography // //## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. //** Load fonts from this directory. @icon-font-path: "../fonts/"; //** File name for all font files. @icon-font-name: "glyphicons-halflings-regular"; //** Element ID within SVG icon file. @icon-font-svg-id: "glyphicons_halflingsregular"; //== Components // //## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start). @padding-base-vertical: 6px; @padding-base-horizontal: 12px; @padding-large-vertical: 10px; @padding-large-horizontal: 16px; @padding-small-vertical: 5px; @padding-small-horizontal: 10px; @padding-xs-vertical: 1px; @padding-xs-horizontal: 5px; @line-height-large: 1.3333333; // extra decimals for Win 8.1 Chrome @line-height-small: 1.5; @border-radius-base: 4px; @border-radius-large: 6px; @border-radius-small: 3px; //** Global color for active items (e.g., navs or dropdowns). @component-active-color: #fff; //** Global background color for active items (e.g., navs or dropdowns). @component-active-bg: @brand-primary; //** Width of the `border` for generating carets that indicate dropdowns. @caret-width-base: 4px; //** Carets increase slightly in size for larger components. @caret-width-large: 5px; //== Tables // //## Customizes the `.table` component with basic values, each used across all table variations. //** Padding for `<th>`s and `<td>`s. @table-cell-padding: 8px; //** Padding for cells in `.table-condensed`. @table-condensed-cell-padding: 5px; //** Default background color used for all tables. @table-bg: transparent; //** Background color used for `.table-striped`. @table-bg-accent: #f9f9f9; //** Background color used for `.table-hover`. @table-bg-hover: #f5f5f5; @table-bg-active: @table-bg-hover; //** Border color for table and cell borders. @table-border-color: #ddd; //== Buttons // //## For each of Bootstrap's buttons, define text, background and border color. @btn-font-weight: normal; @btn-default-color: #333; @btn-default-bg: #fff; @btn-default-border: #ccc; @btn-primary-color: #fff; @btn-primary-bg: @brand-primary; @btn-primary-border: darken(@btn-primary-bg, 5%); @btn-success-color: #fff; @btn-success-bg: @brand-success; @btn-success-border: darken(@btn-success-bg, 5%); @btn-info-color: #fff; @btn-info-bg: @brand-info; @btn-info-border: darken(@btn-info-bg, 5%); @btn-warning-color: #fff; @btn-warning-bg: @brand-warning; @btn-warning-border: darken(@btn-warning-bg, 5%); @btn-danger-color: #fff; @btn-danger-bg: @brand-danger; @btn-danger-border: darken(@btn-danger-bg, 5%); @btn-link-disabled-color: @gray-light; // Allows for customizing button radius independently from global border radius @btn-border-radius-base: @border-radius-base; @btn-border-radius-large: @border-radius-large; @btn-border-radius-small: @border-radius-small; //== Forms // //## //** `<input>` background color @input-bg: #fff; //** `<input disabled>` background color @input-bg-disabled: @gray-lighter; //** Text color for `<input>`s @input-color: @gray; //** `<input>` border color @input-border: #ccc; // TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4 //** Default `.form-control` border radius // This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS. @input-border-radius: @border-radius-base; //** Large `.form-control` border radius @input-border-radius-large: @border-radius-large; //** Small `.form-control` border radius @input-border-radius-small: @border-radius-small; //** Border color for inputs on focus @input-border-focus: #66afe9; //** Placeholder text color @input-color-placeholder: #999; //** Default `.form-control` height @input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); //** Large `.form-control` height @input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); //** Small `.form-control` height @input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); //** `.form-group` margin @form-group-margin-bottom: 15px; @legend-color: @gray-dark; @legend-border-color: #e5e5e5; //** Background color for textual input addons @input-group-addon-bg: @gray-lighter; //** Border color for textual input addons @input-group-addon-border-color: @input-border; //** Disabled cursor for form controls and buttons. @cursor-disabled: not-allowed; //== Dropdowns // //## Dropdown menu container and contents. //** Background for the dropdown menu. @dropdown-bg: #fff; //** Dropdown menu `border-color`. @dropdown-border: rgba(0, 0, 0, .15); //** Dropdown menu `border-color` **for IE8**. @dropdown-fallback-border: #ccc; //** Divider color for between dropdown items. @dropdown-divider-bg: #e5e5e5; //** Dropdown link text color. @dropdown-link-color: @gray-dark; //** Hover color for dropdown links. @dropdown-link-hover-color: darken(@gray-dark, 5%); //** Hover background for dropdown links. @dropdown-link-hover-bg: #f5f5f5; //** Active dropdown menu item text color. @dropdown-link-active-color: @component-active-color; //** Active dropdown menu item background color. @dropdown-link-active-bg: @component-active-bg; //** Disabled dropdown menu item background color. @dropdown-link-disabled-color: @gray-light; //** Text color for headers within dropdown menus. @dropdown-header-color: @gray-light; //** Deprecated `@dropdown-caret-color` as of v3.1.0 @dropdown-caret-color: #000; //-- Z-index master list // // Warning: Avoid customizing these values. They're used for a bird's eye view // of components dependent on the z-axis and are designed to all work together. // // Note: These variables are not generated into the Customizer. @zindex-navbar: 1000; @zindex-dropdown: 1000; @zindex-popover: 1060; @zindex-tooltip: 1070; @zindex-navbar-fixed: 1030; @zindex-modal-background: 1040; @zindex-modal: 1050; //== Media queries breakpoints // //## Define the breakpoints at which your layout will change, adapting to different screen sizes. // Extra small screen / phone //** Deprecated `@screen-xs` as of v3.0.1 @screen-xs: 480px; //** Deprecated `@screen-xs-min` as of v3.2.0 @screen-xs-min: @screen-xs; //** Deprecated `@screen-phone` as of v3.0.1 @screen-phone: @screen-xs-min; // Small screen / tablet //** Deprecated `@screen-sm` as of v3.0.1 @screen-sm: 768px; @screen-sm-min: @screen-sm; //** Deprecated `@screen-tablet` as of v3.0.1 @screen-tablet: @screen-sm-min; // Medium screen / desktop //** Deprecated `@screen-md` as of v3.0.1 @screen-md: 992px; @screen-md-min: @screen-md; //** Deprecated `@screen-desktop` as of v3.0.1 @screen-desktop: @screen-md-min; // Large screen / wide desktop //** Deprecated `@screen-lg` as of v3.0.1 @screen-lg: 1200px; @screen-lg-min: @screen-lg; //** Deprecated `@screen-lg-desktop` as of v3.0.1 @screen-lg-desktop: @screen-lg-min; // So media queries don't overlap when required, provide a maximum @screen-xs-max: (@screen-sm-min - 1); @screen-sm-max: (@screen-md-min - 1); @screen-md-max: (@screen-lg-min - 1); //== Grid system // //## Define your custom responsive grid. //** Number of columns in the grid. @grid-columns: 12; //** Padding between columns. Gets divided in half for the left and right. @grid-gutter-width: 30px; // Navbar collapse //** Point at which the navbar becomes uncollapsed. @grid-float-breakpoint: @screen-sm-min; //** Point at which the navbar begins collapsing. @grid-float-breakpoint-max: (@grid-float-breakpoint - 1); //== Container sizes // //## Define the maximum width of `.container` for different screen sizes. // Small screen / tablet @container-tablet: (720px + @grid-gutter-width); //** For `@screen-sm-min` and up. @container-sm: @container-tablet; // Medium screen / desktop @container-desktop: (940px + @grid-gutter-width); //** For `@screen-md-min` and up. @container-md: @container-desktop; // Large screen / wide desktop @container-large-desktop: (1140px + @grid-gutter-width); //** For `@screen-lg-min` and up. @container-lg: @container-large-desktop; //== Navbar // //## // Basics of a navbar @navbar-height: 50px; @navbar-margin-bottom: @line-height-computed; @navbar-border-radius: @border-radius-base; @navbar-padding-horizontal: floor((@grid-gutter-width / 2)); @navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); @navbar-collapse-max-height: 340px; @navbar-default-color: #777; @navbar-default-bg: #f8f8f8; @navbar-default-border: darken(@navbar-default-bg, 6.5%); // Navbar links @navbar-default-link-color: #777; @navbar-default-link-hover-color: #333; @navbar-default-link-hover-bg: transparent; @navbar-default-link-active-color: #555; @navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); @navbar-default-link-disabled-color: #ccc; @navbar-default-link-disabled-bg: transparent; // Navbar brand label @navbar-default-brand-color: @navbar-default-link-color; @navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); @navbar-default-brand-hover-bg: transparent; // Navbar toggle @navbar-default-toggle-hover-bg: #ddd; @navbar-default-toggle-icon-bar-bg: #888; @navbar-default-toggle-border-color: #ddd; //=== Inverted navbar // Reset inverted navbar basics @navbar-inverse-color: lighten(@gray-light, 15%); @navbar-inverse-bg: #222; @navbar-inverse-border: darken(@navbar-inverse-bg, 10%); // Inverted navbar links @navbar-inverse-link-color: lighten(@gray-light, 15%); @navbar-inverse-link-hover-color: #fff; @navbar-inverse-link-hover-bg: transparent; @navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; @navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); @navbar-inverse-link-disabled-color: #444; @navbar-inverse-link-disabled-bg: transparent; // Inverted navbar brand label @navbar-inverse-brand-color: @navbar-inverse-link-color; @navbar-inverse-brand-hover-color: #fff; @navbar-inverse-brand-hover-bg: transparent; // Inverted navbar toggle @navbar-inverse-toggle-hover-bg: #333; @navbar-inverse-toggle-icon-bar-bg: #fff; @navbar-inverse-toggle-border-color: #333; //== Navs // //## //=== Shared nav styles @nav-link-padding: 10px 15px; @nav-link-hover-bg: @gray-lighter; @nav-disabled-link-color: @gray-light; @nav-disabled-link-hover-color: @gray-light; //== Tabs @nav-tabs-border-color: #ddd; @nav-tabs-link-hover-border-color: @gray-lighter; @nav-tabs-active-link-hover-bg: @body-bg; @nav-tabs-active-link-hover-color: @gray; @nav-tabs-active-link-hover-border-color: #ddd; @nav-tabs-justified-link-border-color: #ddd; @nav-tabs-justified-active-link-border-color: @body-bg; //== Pills @nav-pills-border-radius: @border-radius-base; @nav-pills-active-link-hover-bg: @component-active-bg; @nav-pills-active-link-hover-color: @component-active-color; //== Pagination // //## @pagination-color: @link-color; @pagination-bg: #fff; @pagination-border: #ddd; @pagination-hover-color: @link-hover-color; @pagination-hover-bg: @gray-lighter; @pagination-hover-border: #ddd; @pagination-active-color: #fff; @pagination-active-bg: @brand-primary; @pagination-active-border: @brand-primary; @pagination-disabled-color: @gray-light; @pagination-disabled-bg: #fff; @pagination-disabled-border: #ddd; //== Pager // //## @pager-bg: @pagination-bg; @pager-border: @pagination-border; @pager-border-radius: 15px; @pager-hover-bg: @pagination-hover-bg; @pager-active-bg: @pagination-active-bg; @pager-active-color: @pagination-active-color; @pager-disabled-color: @pagination-disabled-color; //== Jumbotron // //## @jumbotron-padding: 30px; @jumbotron-color: inherit; @jumbotron-bg: @gray-lighter; @jumbotron-heading-color: inherit; @jumbotron-font-size: ceil((@font-size-base * 1.5)); @jumbotron-heading-font-size: ceil((@font-size-base * 4.5)); //== Form states and alerts // //## Define colors for form feedback states and, by default, alerts. @state-success-text: #3c763d; @state-success-bg: #dff0d8; @state-success-border: darken(spin(@state-success-bg, -10), 5%); @state-info-text: #31708f; @state-info-bg: #d9edf7; @state-info-border: darken(spin(@state-info-bg, -10), 7%); @state-warning-text: #8a6d3b; @state-warning-bg: #fcf8e3; @state-warning-border: darken(spin(@state-warning-bg, -10), 5%); @state-danger-text: #a94442; @state-danger-bg: #f2dede; @state-danger-border: darken(spin(@state-danger-bg, -10), 5%); //== Tooltips // //## //** Tooltip max width @tooltip-max-width: 200px; //** Tooltip text color @tooltip-color: #fff; //** Tooltip background color @tooltip-bg: #000; @tooltip-opacity: .9; //** Tooltip arrow width @tooltip-arrow-width: 5px; //** Tooltip arrow color @tooltip-arrow-color: @tooltip-bg; //== Popovers // //## //** Popover body background color @popover-bg: #fff; //** Popover maximum width @popover-max-width: 276px; //** Popover border color @popover-border-color: rgba(0, 0, 0, .2); //** Popover fallback border color @popover-fallback-border-color: #ccc; //** Popover title background color @popover-title-bg: darken(@popover-bg, 3%); //** Popover arrow width @popover-arrow-width: 10px; //** Popover arrow color @popover-arrow-color: @popover-bg; //** Popover outer arrow width @popover-arrow-outer-width: (@popover-arrow-width + 1); //** Popover outer arrow color @popover-arrow-outer-color: fadein(@popover-border-color, 5%); //** Popover outer arrow fallback color @popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); //== Labels // //## //** Default label background color @label-default-bg: @gray-light; //** Primary label background color @label-primary-bg: @brand-primary; //** Success label background color @label-success-bg: @brand-success; //** Info label background color @label-info-bg: @brand-info; //** Warning label background color @label-warning-bg: @brand-warning; //** Danger label background color @label-danger-bg: @brand-danger; //** Default label text color @label-color: #fff; //** Default text color of a linked label @label-link-hover-color: #fff; //== Modals // //## //** Padding applied to the modal body @modal-inner-padding: 15px; //** Padding applied to the modal title @modal-title-padding: 15px; //** Modal title line-height @modal-title-line-height: @line-height-base; //** Background color of modal content area @modal-content-bg: #fff; //** Modal content border color @modal-content-border-color: rgba(0, 0, 0, .2); //** Modal content border color **for IE8** @modal-content-fallback-border-color: #999; //** Modal backdrop background color @modal-backdrop-bg: #000; //** Modal backdrop opacity @modal-backdrop-opacity: .5; //** Modal header border color @modal-header-border-color: #e5e5e5; //** Modal footer border color @modal-footer-border-color: @modal-header-border-color; @modal-lg: 900px; @modal-md: 600px; @modal-sm: 300px; //== Alerts // //## Define alert colors, border radius, and padding. @alert-padding: 15px; @alert-border-radius: @border-radius-base; @alert-link-font-weight: bold; @alert-success-bg: @state-success-bg; @alert-success-text: @state-success-text; @alert-success-border: @state-success-border; @alert-info-bg: @state-info-bg; @alert-info-text: @state-info-text; @alert-info-border: @state-info-border; @alert-warning-bg: @state-warning-bg; @alert-warning-text: @state-warning-text; @alert-warning-border: @state-warning-border; @alert-danger-bg: @state-danger-bg; @alert-danger-text: @state-danger-text; @alert-danger-border: @state-danger-border; //== Progress bars // //## //** Background color of the whole progress component @progress-bg: #f5f5f5; //** Progress bar text color @progress-bar-color: #fff; //** Variable for setting rounded corners on progress bar. @progress-border-radius: @border-radius-base; //** Default progress bar color @progress-bar-bg: @brand-primary; //** Success progress bar color @progress-bar-success-bg: @brand-success; //** Warning progress bar color @progress-bar-warning-bg: @brand-warning; //** Danger progress bar color @progress-bar-danger-bg: @brand-danger; //** Info progress bar color @progress-bar-info-bg: @brand-info; //== List group // //## //** Background color on `.list-group-item` @list-group-bg: #fff; //** `.list-group-item` border color @list-group-border: #ddd; //** List group border radius @list-group-border-radius: @border-radius-base; //** Background color of single list items on hover @list-group-hover-bg: #f5f5f5; //** Text color of active list items @list-group-active-color: @component-active-color; //** Background color of active list items @list-group-active-bg: @component-active-bg; //** Border color of active list elements @list-group-active-border: @list-group-active-bg; //** Text color for content within active list items @list-group-active-text-color: lighten(@list-group-active-bg, 40%); //** Text color of disabled list items @list-group-disabled-color: @gray-light; //** Background color of disabled list items @list-group-disabled-bg: @gray-lighter; //** Text color for content within disabled list items @list-group-disabled-text-color: @list-group-disabled-color; @list-group-link-color: #555; @list-group-link-hover-color: @list-group-link-color; @list-group-link-heading-color: #333; //== Panels // //## @panel-bg: #fff; @panel-body-padding: 15px; @panel-heading-padding: 10px 15px; @panel-footer-padding: @panel-heading-padding; @panel-border-radius: @border-radius-base; //** Border color for elements within panels @panel-inner-border: #ddd; @panel-footer-bg: #f5f5f5; @panel-default-text: @gray-dark; @panel-default-border: #ddd; @panel-default-heading-bg: #f5f5f5; @panel-primary-text: #fff; @panel-primary-border: @brand-primary; @panel-primary-heading-bg: @brand-primary; @panel-success-text: @state-success-text; @panel-success-border: @state-success-border; @panel-success-heading-bg: @state-success-bg; @panel-info-text: @state-info-text; @panel-info-border: @state-info-border; @panel-info-heading-bg: @state-info-bg; @panel-warning-text: @state-warning-text; @panel-warning-border: @state-warning-border; @panel-warning-heading-bg: @state-warning-bg; @panel-danger-text: @state-danger-text; @panel-danger-border: @state-danger-border; @panel-danger-heading-bg: @state-danger-bg; //== Thumbnails // //## //** Padding around the thumbnail image @thumbnail-padding: 4px; //** Thumbnail background color @thumbnail-bg: @body-bg; //** Thumbnail border color @thumbnail-border: #ddd; //** Thumbnail border radius @thumbnail-border-radius: @border-radius-base; //** Custom text color for thumbnail captions @thumbnail-caption-color: @text-color; //** Padding around the thumbnail caption @thumbnail-caption-padding: 9px; //== Wells // //## @well-bg: #f5f5f5; @well-border: darken(@well-bg, 7%); //== Badges // //## @badge-color: #fff; //** Linked badge text color on hover @badge-link-hover-color: #fff; @badge-bg: @gray-light; //** Badge text color in active nav link @badge-active-color: @link-color; //** Badge background color in active nav link @badge-active-bg: #fff; @badge-font-weight: bold; @badge-line-height: 1; @badge-border-radius: 10px; //== Breadcrumbs // //## @breadcrumb-padding-vertical: 8px; @breadcrumb-padding-horizontal: 15px; //** Breadcrumb background color @breadcrumb-bg: #f5f5f5; //** Breadcrumb text color @breadcrumb-color: #ccc; //** Text color of current page in the breadcrumb @breadcrumb-active-color: @gray-light; //** Textual separator for between breadcrumb elements @breadcrumb-separator: "/"; //== Carousel // //## @carousel-text-shadow: 0 1px 2px rgba(0, 0, 0, .6); @carousel-control-color: #fff; @carousel-control-width: 15%; @carousel-control-opacity: .5; @carousel-control-font-size: 20px; @carousel-indicator-active-bg: #fff; @carousel-indicator-border-color: #fff; @carousel-caption-color: #fff; //== Close // //## @close-font-weight: bold; @close-color: #000; @close-text-shadow: 0 1px 0 #fff; //== Code // //## @code-color: #c7254e; @code-bg: #f9f2f4; @kbd-color: #fff; @kbd-bg: #333; @pre-bg: #f5f5f5; @pre-color: @gray-dark; @pre-border-color: #ccc; @pre-scrollable-max-height: 340px; //== Type // //## //** Horizontal offset for forms and lists. @component-offset-horizontal: 180px; //** Text muted color @text-muted: @gray-light; //** Abbreviations and acronyms border color @abbr-border-color: @gray-light; //** Headings small color @headings-small-color: @gray-light; //** Blockquote small color @blockquote-small-color: @gray-light; //** Blockquote font size @blockquote-font-size: (@font-size-base * 1.25); //** Blockquote border color @blockquote-border-color: @gray-lighter; //** Page header border color @page-header-border-color: @gray-lighter; //** Width of horizontal description list titles @dl-horizontal-offset: @component-offset-horizontal; //** Point at which .dl-horizontal becomes horizontal @dl-horizontal-breakpoint: @grid-float-breakpoint; //** Horizontal line color. @hr-border: @gray-lighter; template_rtl.less 0000604 00000001003 15245530473 0010126 0 ustar 00 // Specific RTL. rtl class is added to body tag // Fix for sub menu alignment .rtl .navigation .nav-child { left: auto; right:0; } .rtl .navigation .nav > li > .nav-child:before { left: auto; right:12px; } .rtl .navigation .nav > li > .nav-child:after { left: auto; right:13px; } // Category collapse .rtl .categories-list .collapse { margin: 0 20px 0 0; } // Modal footer .rtl .modal-footer button { float: left; } // Smart search select field margin .rtl .finder-selects { margin: 0 0 15px 15px; } icomoon.less 0000604 00000002077 15245530473 0007111 0 ustar 00 @font-face { font-family: 'IcoMoon'; src: url('../../../../media/jui/fonts/IcoMoon.eot'); src: url('../../../../media/jui/fonts/IcoMoon.eot?#iefix') format('embedded-opentype'), url('../../../../media/jui/fonts/IcoMoon.woff') format('woff'), url('../../../../media/jui/fonts/IcoMoon.ttf') format('truetype'), url('../../../../media/jui/fonts/IcoMoon.svg#IcoMoon') format('svg'); font-weight: normal; font-style: normal; } @import "../../../../media/jui/less/icomoon.less"; .icon-edit:before { color: @btnInfoBackgroundHighlight; } .icon-publish:before, .icon-save:before, .icon-ok:before, .icon-save-new:before, .icon-save-copy:before, .btn-toolbar .icon-copy:before { color: @btnSuccessBackgroundHighlight; } .icon-unpublish:before, .icon-not-ok:before, .icon-eye-close:before, .icon-ban-circle:before, .icon-minus-sign:before, .btn-toolbar .icon-cancel:before { color: @btnDangerBackgroundHighlight; } .icon-featured:before, .icon-default:before, .icon-expired:before, .icon-pending:before { color: @btnWarningBackgroundHighlight; } .icon-back:before { content: "\e008"; } forms.less 0000604 00000036727 15245540247 0006605 0 ustar 00 // stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix // // Forms // -------------------------------------------------- // Normalize non-controls // // Restyle and baseline non-control form elements. fieldset { // Chrome and Firefox set a `min-width: min-content;` on fieldsets, // so we reset that to ensure it behaves more like a standard block element. // See https://github.com/twbs/bootstrap/issues/12359. min-width: 0; padding: 0; margin: 0; border: 0; } legend { display: block; width: 100%; padding: 0; margin-bottom: @line-height-computed; font-size: (@font-size-base * 1.5); line-height: inherit; color: @legend-color; border: 0; border-bottom: 1px solid @legend-border-color; } label { display: inline-block; max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) margin-bottom: 5px; font-weight: 700; } // Normalize form controls // // While most of our form styles require extra classes, some basic normalization // is required to ensure optimum display with or without those classes to better // address browser inconsistencies. input[type="search"] { // Override content-box in Normalize (* isn't specific enough) .box-sizing(border-box); // Search inputs in iOS // // This overrides the extra rounded corners on search inputs in iOS so that our // `.form-control` class can properly style them. Note that this cannot simply // be added to `.form-control` as it's not specific enough. For details, see // https://github.com/twbs/bootstrap/issues/11586. -webkit-appearance: none; appearance: none; } // Position radios and checkboxes better input[type="radio"], input[type="checkbox"] { margin: 4px 0 0; margin-top: 1px \9; // IE8-9 line-height: normal; // Apply same disabled cursor tweak as for inputs // Some special care is needed because <label>s don't inherit their parent's `cursor`. // // Note: Neither radios nor checkboxes can be readonly. &[disabled], &.disabled, fieldset[disabled] & { cursor: @cursor-disabled; } } input[type="file"] { display: block; } // Make range inputs behave like textual form controls input[type="range"] { display: block; width: 100%; } // Make multiple select elements height not fixed select[multiple], select[size] { height: auto; } // Focus for file, radio, and checkbox input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { .tab-focus(); } // Adjust output element output { display: block; padding-top: (@padding-base-vertical + 1); font-size: @font-size-base; line-height: @line-height-base; color: @input-color; } // Common form controls // // Shared size and type resets for form controls. Apply `.form-control` to any // of the following form controls: // // select // textarea // input[type="text"] // input[type="password"] // input[type="datetime"] // input[type="datetime-local"] // input[type="date"] // input[type="month"] // input[type="time"] // input[type="week"] // input[type="number"] // input[type="email"] // input[type="url"] // input[type="search"] // input[type="tel"] // input[type="color"] .form-control { display: block; width: 100%; height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) padding: @padding-base-vertical @padding-base-horizontal; font-size: @font-size-base; line-height: @line-height-base; color: @input-color; background-color: @input-bg; background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 border: 1px solid @input-border; border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS. .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); // Customize the `:focus` state to imitate native WebKit styles. .form-control-focus(); // Placeholder .placeholder(); // Unstyle the caret on `<select>`s in IE10+. &::-ms-expand { background-color: transparent; border: 0; } // Disabled and read-only inputs // // HTML5 says that controls under a fieldset > legend:first-child won't be // disabled if the fieldset is disabled. Due to implementation difficulty, we // don't honor that edge case; we style them as disabled anyway. &[disabled], &[readonly], fieldset[disabled] & { background-color: @input-bg-disabled; opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655 } &[disabled], fieldset[disabled] & { cursor: @cursor-disabled; } // Reset height for `textarea`s textarea& { height: auto; } } // Special styles for iOS temporal inputs // // In Mobile Safari, setting `display: block` on temporal inputs causes the // text within the input to become vertically misaligned. As a workaround, we // set a pixel line-height that matches the given height of the input, but only // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 // // Note that as of 9.3, iOS doesn't support `week`. @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"] { &.form-control { line-height: @input-height-base; } &.input-sm, .input-group-sm & { line-height: @input-height-small; } &.input-lg, .input-group-lg & { line-height: @input-height-large; } } } // Form groups // // Designed to help with the organization and spacing of vertical forms. For // horizontal forms, use the predefined grid classes. .form-group { margin-bottom: @form-group-margin-bottom; } // Checkboxes and radios // // Indent the labels to position radios/checkboxes as hanging controls. .radio, .checkbox { position: relative; display: block; margin-top: 10px; margin-bottom: 10px; // These are used on elements with <label> descendants &.disabled, fieldset[disabled] & { label { cursor: @cursor-disabled; } } label { min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text padding-left: 20px; margin-bottom: 0; font-weight: 400; cursor: pointer; } } .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { position: absolute; margin-top: 4px \9; margin-left: -20px; } .radio + .radio, .checkbox + .checkbox { margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing } // Radios and checkboxes on same line .radio-inline, .checkbox-inline { position: relative; display: inline-block; padding-left: 20px; margin-bottom: 0; font-weight: 400; vertical-align: middle; cursor: pointer; // These are used directly on <label>s &.disabled, fieldset[disabled] & { cursor: @cursor-disabled; } } .radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { margin-top: 0; margin-left: 10px; // space out consecutive inline controls } // Static form control text // // Apply class to a `p` element to make any string of text align with labels in // a horizontal form layout. .form-control-static { min-height: (@line-height-computed + @font-size-base); // Size it appropriately next to real form controls padding-top: (@padding-base-vertical + 1); padding-bottom: (@padding-base-vertical + 1); // Remove default margin from `p` margin-bottom: 0; &.input-lg, &.input-sm { padding-right: 0; padding-left: 0; } } // Form control sizing // // Build on `.form-control` with modifier classes to decrease or increase the // height and font-size of form controls. // // The `.form-group-* form-control` variations are sadly duplicated to avoid the // issue documented in https://github.com/twbs/bootstrap/issues/15074. .input-sm { .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small); } .form-group-sm { .form-control { height: @input-height-small; padding: @padding-small-vertical @padding-small-horizontal; font-size: @font-size-small; line-height: @line-height-small; border-radius: @input-border-radius-small; } select.form-control { height: @input-height-small; line-height: @input-height-small; } textarea.form-control, select[multiple].form-control { height: auto; } .form-control-static { height: @input-height-small; min-height: (@line-height-computed + @font-size-small); padding: (@padding-small-vertical + 1) @padding-small-horizontal; font-size: @font-size-small; line-height: @line-height-small; } } .input-lg { .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large); } .form-group-lg { .form-control { height: @input-height-large; padding: @padding-large-vertical @padding-large-horizontal; font-size: @font-size-large; line-height: @line-height-large; border-radius: @input-border-radius-large; } select.form-control { height: @input-height-large; line-height: @input-height-large; } textarea.form-control, select[multiple].form-control { height: auto; } .form-control-static { height: @input-height-large; min-height: (@line-height-computed + @font-size-large); padding: (@padding-large-vertical + 1) @padding-large-horizontal; font-size: @font-size-large; line-height: @line-height-large; } } // Form control feedback states // // Apply contextual and semantic states to individual form controls. .has-feedback { // Enable absolute positioning position: relative; // Ensure icons don't overlap text .form-control { padding-right: (@input-height-base * 1.25); } } // Feedback icon (requires .glyphicon classes) .form-control-feedback { position: absolute; top: 0; right: 0; z-index: 2; // Ensure icon is above input groups display: block; width: @input-height-base; height: @input-height-base; line-height: @input-height-base; text-align: center; pointer-events: none; } .input-lg + .form-control-feedback, .input-group-lg + .form-control-feedback, .form-group-lg .form-control + .form-control-feedback { width: @input-height-large; height: @input-height-large; line-height: @input-height-large; } .input-sm + .form-control-feedback, .input-group-sm + .form-control-feedback, .form-group-sm .form-control + .form-control-feedback { width: @input-height-small; height: @input-height-small; line-height: @input-height-small; } // Feedback states .has-success { .form-control-validation(@state-success-text; @state-success-text; @state-success-bg); } .has-warning { .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg); } .has-error { .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg); } // Reposition feedback icon if input has visible label above .has-feedback label { & ~ .form-control-feedback { top: (@line-height-computed + 5); // Height of the `label` and its margin } &.sr-only ~ .form-control-feedback { top: 0; } } // Help text // // Apply to any element you wish to create light text for placement immediately // below a form control. Use for general help, formatting, or instructional text. .help-block { display: block; // account for any element using help-block margin-top: 5px; margin-bottom: 10px; color: lighten(@text-color, 25%); // lighten the text some for contrast } // Inline forms // // Make forms appear inline(-block) by adding the `.form-inline` class. Inline // forms begin stacked on extra small (mobile) devices and then go inline when // viewports reach <768px. // // Requires wrapping inputs and labels with `.form-group` for proper display of // default HTML form controls and our custom form controls (e.g., input groups). // // Heads up! This is mixin-ed into `.navbar-form` in navbars.less. .form-inline { // Kick in the inline @media (min-width: @screen-sm-min) { // Inline-block all the things for "inline" .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; } // In navbar-form, allow folks to *not* use `.form-group` .form-control { display: inline-block; width: auto; // Prevent labels from stacking above inputs in `.form-group` vertical-align: middle; } // Make static controls behave like regular ones .form-control-static { display: inline-block; } .input-group { display: inline-table; vertical-align: middle; .input-group-addon, .input-group-btn, .form-control { width: auto; } } // Input groups need that 100% width though .input-group > .form-control { width: 100%; } .control-label { margin-bottom: 0; vertical-align: middle; } // Remove default margin on radios/checkboxes that were used for stacking, and // then undo the floating of radios and checkboxes to match. .radio, .checkbox { display: inline-block; margin-top: 0; margin-bottom: 0; vertical-align: middle; label { padding-left: 0; } } .radio input[type="radio"], .checkbox input[type="checkbox"] { position: relative; margin-left: 0; } // Re-override the feedback icon. .has-feedback .form-control-feedback { top: 0; } } } // Horizontal forms // // Horizontal forms are built on grid classes and allow you to create forms with // labels on the left and inputs on the right. .form-horizontal { // Consistent vertical alignment of radios and checkboxes // // Labels also get some reset styles, but that is scoped to a media query below. .radio, .checkbox, .radio-inline, .checkbox-inline { padding-top: (@padding-base-vertical + 1); // Default padding plus a border margin-top: 0; margin-bottom: 0; } // Account for padding we're adding to ensure the alignment and of help text // and other content below items .radio, .checkbox { min-height: (@line-height-computed + (@padding-base-vertical + 1)); } // Make form groups behave like rows .form-group { .make-row(); } // Reset spacing and right align labels, but scope to media queries so that // labels on narrow viewports stack the same as a default form example. @media (min-width: @screen-sm-min) { .control-label { padding-top: (@padding-base-vertical + 1); // Default padding plus a border margin-bottom: 0; text-align: right; } } // Validation states // // Reposition the icon because it's now within a grid column and columns have // `position: relative;` on them. Also accounts for the grid gutter padding. .has-feedback .form-control-feedback { right: floor((@grid-gutter-width / 2)); } // Form group sizes // // Quick utility class for applying `.input-lg` and `.input-sm` styles to the // inputs and labels within a `.form-group`. .form-group-lg { @media (min-width: @screen-sm-min) { .control-label { padding-top: (@padding-large-vertical + 1); font-size: @font-size-large; } } } .form-group-sm { @media (min-width: @screen-sm-min) { .control-label { padding-top: (@padding-small-vertical + 1); font-size: @font-size-small; } } } } responsive-utilities.less 0000604 00000010373 15245540247 0011652 0 ustar 00 // stylelint-disable declaration-no-important, at-rule-no-vendor-prefix // // Responsive: Utility classes // -------------------------------------------------- // IE10 in Windows (Phone) 8 // // Support for responsive views via media queries is kind of borked in IE10, for // Surface/desktop in split view and for Windows Phone 8. This particular fix // must be accompanied by a snippet of JavaScript to sniff the user agent and // apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at // our Getting Started page for more information on this bug. // // For more information, see the following: // // Issue: https://github.com/twbs/bootstrap/issues/10497 // Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width // Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/ // Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ @-ms-viewport { width: device-width; } // Visibility utilities // Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 .visible-xs, .visible-sm, .visible-md, .visible-lg { .responsive-invisibility(); } .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-lg-block, .visible-lg-inline, .visible-lg-inline-block { display: none !important; } .visible-xs { @media (max-width: @screen-xs-max) { .responsive-visibility(); } } .visible-xs-block { @media (max-width: @screen-xs-max) { display: block !important; } } .visible-xs-inline { @media (max-width: @screen-xs-max) { display: inline !important; } } .visible-xs-inline-block { @media (max-width: @screen-xs-max) { display: inline-block !important; } } .visible-sm { @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { .responsive-visibility(); } } .visible-sm-block { @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { display: block !important; } } .visible-sm-inline { @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { display: inline !important; } } .visible-sm-inline-block { @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { display: inline-block !important; } } .visible-md { @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { .responsive-visibility(); } } .visible-md-block { @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { display: block !important; } } .visible-md-inline { @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { display: inline !important; } } .visible-md-inline-block { @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { display: inline-block !important; } } .visible-lg { @media (min-width: @screen-lg-min) { .responsive-visibility(); } } .visible-lg-block { @media (min-width: @screen-lg-min) { display: block !important; } } .visible-lg-inline { @media (min-width: @screen-lg-min) { display: inline !important; } } .visible-lg-inline-block { @media (min-width: @screen-lg-min) { display: inline-block !important; } } .hidden-xs { @media (max-width: @screen-xs-max) { .responsive-invisibility(); } } .hidden-sm { @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { .responsive-invisibility(); } } .hidden-md { @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { .responsive-invisibility(); } } .hidden-lg { @media (min-width: @screen-lg-min) { .responsive-invisibility(); } } // Print utilities // // Media queries are placed on the inside to be mixin-friendly. // Note: Deprecated .visible-print as of v3.2.0 .visible-print { .responsive-invisibility(); @media print { .responsive-visibility(); } } .visible-print-block { display: none !important; @media print { display: block !important; } } .visible-print-inline { display: none !important; @media print { display: inline !important; } } .visible-print-inline-block { display: none !important; @media print { display: inline-block !important; } } .hidden-print { @media print { .responsive-invisibility(); } } bootstrap-extended.less 0000604 00000023425 15245540247 0011261 0 ustar 00 /* Extending Bootstrap */ /* Typography */ .small { font-size: 11px; } /* Max Width */ iframe, svg { max-width: 100%; } /* Nowrap */ .nowrap { white-space: nowrap; } /* Center */ .center, .table td.center, .table th.center { text-align: center; } /* Disabled Link */ a.disabled, a.disabled:hover { color: #999999; background-color: transparent; cursor: default; text-decoration: none; } /* Hero Banner */ .hero-unit { text-align: center; } .hero-unit .lead { margin-bottom: 18px; font-size: 20px; font-weight: 200; line-height: 27px; } .btn .caret { margin-bottom: 7px; } .btn.btn-micro .caret { margin: 5px 0; } .blog-row-rule, .blog-item-rule { border: 0; } /* Modal */ body.modal { padding-top: 0; } /* Alternating Rows */ .row-even,.row-odd { padding: 5px; width: 99%; border-bottom: 1px solid @tableBorder; } .row-odd { background-color: @tableBackground; } .row-even { background-color: @tableBackgroundAccent; } .blog-row-rule, .blog-item-rule { border: 0; } /* Row reveal */ .row-fluid .row-reveal { visibility: hidden; } .row-fluid:hover .row-reveal { visibility: visible; } /* Buttons */ .btn-wide { width: 80%; } /* Nav List Offset */ .nav-list > li.offset > a { padding-left: 30px; font-size: 12px; } .blog-row-rule, .blog-item-rule { border: 0; } .row-fluid .offset1 { margin-left: 8.382978723%; } .row-fluid .offset2 { margin-left: 16.89361702%; } .row-fluid .offset3 { margin-left: 25.404255317%; } .row-fluid .offset4 { margin-left: 33.914893614%; } .row-fluid .offset5 { margin-left: 42.425531911%; } .row-fluid .offset6 { margin-left: 50.93617020799999%; } .row-fluid .offset7 { margin-left: 59.446808505%; } .row-fluid .offset8 { margin-left: 67.95744680199999%; } .row-fluid .offset9 { margin-left: 76.468085099%; } .row-fluid .offset10 { margin-left: 84.97872339599999%; } .row-fluid .offset11 { margin-left: 91.489361693%; } /* Navbar Buttons */ .navbar .nav > li > a.btn { padding: 4px 10px; line-height: 18px; } /* Nav Tabs Dark */ .nav-tabs.nav-dark { border-bottom: 1px solid #333; text-shadow: 1px 1px 1px #000; } .nav-tabs.nav-dark > li > a { color: #F8F8F8; } .nav-tabs.nav-dark > li > a:hover { border-color: #333 #333 #111; background-color: #777777; } .nav-tabs.nav-dark > .active > a, .nav-tabs.nav-dark > .active > a:hover { color: #ffffff; background-color: #555555; border: 1px solid #222; border-bottom-color: transparent; } /* Inline Thumbnails */ .thumbnail.pull-left { margin: 0 10px 10px 0; } .thumbnail.pull-right { margin: 0 0 10px 10px; } /* Specific Widths */ .width-10 { width: 10px; } .width-20 { width: 20px; } .width-30 { width: 30px; } .width-40 { width: 40px; } .width-50 { width: 50px; } .width-60 { width: 60px; } .width-70 { width: 70px; } .width-80 { width: 80px; } .width-90 { width: 90px; } .width-100 { width: 100px; } /* Specific Heights */ .height-10 { height: 10px; } .height-20 { height: 20px; } .height-30 { height: 30px; } .height-40 { height: 40px; } .height-50 { height: 50px; } .height-60 { height: 60px; } .height-70 { height: 70px; } .height-80 { height: 80px; } .height-90 { height: 90px; } .height-100 { height: 100px; } /* Horizontal Row (hr) */ hr.hr-condensed { margin: 10px 0; } /* Striped */ .list-striped, .row-striped { list-style: none; line-height: 18px; text-align: left; vertical-align: middle; border-top: 1px solid @tableBorder; margin-left: 0; } .list-striped li, .list-striped dd, .row-striped .row, .row-striped .row-fluid { border-bottom: 1px solid @tableBorder; padding: 8px; } .list-striped li:nth-child(odd), .list-striped dd:nth-child(odd), .row-striped .row:nth-child(odd), .row-striped .row-fluid:nth-child(odd) { background-color: @tableBackgroundAccent; } .list-striped li:hover, .list-striped dd:hover, .row-striped .row:hover, .row-striped .row-fluid:hover { background-color: @tableBackgroundHover; } .row-striped .row-fluid { width: 100%; box-sizing: border-box; // box-sizing since we don't care about padding } .row-striped .row-fluid [class*="span"] { min-height: 10px; } .row-striped .row-fluid [class*="span"] { margin-left: 8px; } .row-striped .row-fluid [class*="span"]:first-child { margin-left: 0; } /* Condensed */ .list-condensed { li { padding: 4px 5px; } } .row-condensed { .row, .row-fluid { padding: 4px 5px; } } /* Bordered */ .list-bordered, .row-bordered{ list-style: none; line-height: 18px; text-align: left; vertical-align: middle; margin-left: 0; border: 1px solid @tableBorder; .border-radius(4px); } /* Radio Button Groups */ .radio.btn-group input[type=radio] { display: none; } .radio.btn-group > label { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .radio.btn-group > label:first-of-type { margin-left: 0; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-topleft: 4px; } fieldset.radio.btn-group { padding-left: 0; } /* iFrames */ .iframe-bordered { border: 1px solid @tableBorder; } /* Tabbed Content */ .tab-content{ overflow: visible; } .tabs-left .tab-content{ overflow: auto; } /* Non-linkable nav-tabs */ .nav-tabs > li > span { display: block; margin-right: 2px; padding-right: 12px; padding-left: 12px; padding-top: 8px; padding-bottom: 8px; line-height: 18px; border: 1px solid transparent; -webkit-border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0; } /* Extended Joomla Button Classes */ .btn-micro { padding: 1px 4px; font-size: 10px; line-height: 8px; } .btn-group > .btn-micro { font-size: 10px; } /* Joomla => Bootstrap Tooltip */ .tip-wrap { max-width: 200px; padding: 3px 8px; color: @white; text-align: center; text-decoration: none; background-color: @black; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; z-index: 100; } /* Page Header */ .page-header{ margin: 2px 0px 10px 0px; padding-bottom: 5px; } /* Input Prepend Chosen Select Boxes */ /* Common styling for Chosen Select Boxes with Input Prepend/Append */ .input-prepend > .add-on, .input-append > .add-on { vertical-align: top; } /* Styles specific to Input Prepend Chosen Select Boxes */ .input-prepend .chzn-container-single .chzn-single { -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; } .input-prepend .chzn-container-single .chzn-single-with-drop { -webkit-border-radius: 0 3px 0 0; -moz-border-radius: 0 3px 0 0; border-radius: 0 3px 0 0; } /* Styles specific to Input Append Chosen Select Boxes */ .input-append .chzn-container-single .chzn-single { -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; border-radius: 3px 0 0 3px; } .input-append .chzn-container-single .chzn-single-with-drop { -webkit-border-radius: 3px 0 0 0; -moz-border-radius: 3px 0 0 0; border-radius: 3px 0 0 0; } /* Styles specific to combined Input Prepend and Append Chosen Select Boxes */ .input-prepend.input-append .chzn-container-single .chzn-single, .input-prepend.input-append .chzn-container-single .chzn-single-with-drop { -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } /* Accessible Hidden Elements (good for hidden labels and such) */ .element-invisible { position: absolute; padding: 0; margin: 0; border: 0; height: 1px; width: 1px; overflow: hidden; } /* Make Accessible Hidden Elements visible on focus */ .element-invisible:focus { width:auto; height:auto; overflow:auto; background:#eee; color:#000; padding:1em; } /* Form Vertical Overrides Form Horizontal */ .form-vertical { .control-label { float: none; width: auto; padding-right: 0; padding-top: 0; text-align: left; } .controls{ margin-left: 0; } } /* Auto Width */ .width-auto { width: auto; } /* Chosen proper wrapping in Bootstrap btn-group */ .btn-group .chzn-results { white-space: normal; } /* Accordion overflow fix */ .accordion-body.in:hover { overflow:visible; } /* Invalid indicators */ .invalid { color: @red; font-weight: bold; } input.invalid { border: 1px solid @red; background: #f2dede; } select.chzn-done.invalid + .chzn-container.chzn-container-single > a.chzn-single, select.chzn-done.invalid + .chzn-container.chzn-container-multi > ul.chzn-choices { border-color: @red; color: @red; } /* Tweaking of tooltips */ .tooltip { max-width: 400px; } .tooltip-inner { max-width: none; text-align: left; text-shadow: none; } th .tooltip-inner { font-weight: normal; } .tooltip.hasimage { opacity: 1; } /* Align tip text to left (old mootools tip) */ .tip-text { text-align:left; } // Fix for bug when dropdown-backdrop element is created .btn-group > .btn + .dropdown-backdrop + .btn { margin-left: -1px; } .btn-group > .btn + .dropdown-backdrop + .dropdown-toggle { padding-left: 8px; padding-right: 8px; .box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)"); *padding-top: 5px; *padding-bottom: 5px; } .btn-group > .btn-mini + .dropdown-backdrop + .dropdown-toggle { padding-left: 5px; padding-right: 5px; *padding-top: 2px; *padding-bottom: 2px; } .btn-group > .btn-small + .dropdown-backdrop + .dropdown-toggle { *padding-top: 5px; *padding-bottom: 4px; } .btn-group > .btn-large + .dropdown-backdrop + .dropdown-toggle { padding-left: 12px; padding-right: 12px; *padding-top: 7px; *padding-bottom: 7px; } .dropdown-menu { text-align: left; } // Add Bootstrap 3 .alert-link .alert-link { font-weight: bold; } .alert .alert-link { color: darken(@warningText, 10%); } .alert-success .alert-link { color: darken(@successText, 10%); } .alert-danger .alert-link, .alert-error .alert-link { color: darken(@errorText, 10%); } .alert-info .alert-link { color: darken(@infoText, 10%); } alerts.less 0000604 00000002752 15245540247 0006740 0 ustar 00 // // Alerts // -------------------------------------------------- // Base styles // ------------------------- .alert { padding: @alert-padding; margin-bottom: @line-height-computed; border: 1px solid transparent; border-radius: @alert-border-radius; // Headings for larger alerts h4 { margin-top: 0; color: inherit; // Specified for the h4 to prevent conflicts of changing @headings-color } // Provide class for links that match alerts .alert-link { font-weight: @alert-link-font-weight; } // Improve alignment and spacing of inner content > p, > ul { margin-bottom: 0; } > p + p { margin-top: 5px; } } // Dismissible alerts // // Expand the right padding and account for the close button's positioning. // The misspelled .alert-dismissable was deprecated in 3.2.0. .alert-dismissable, .alert-dismissible { padding-right: (@alert-padding + 20); // Adjust close link position .close { position: relative; top: -2px; right: -21px; color: inherit; } } // Alternate styles // // Generate contextual modifier classes for colorizing the alert. .alert-success { .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); } .alert-info { .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); } .alert-warning { .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); } .alert-danger { .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); } pager.less 0000604 00000001535 15245540247 0006542 0 ustar 00 // // Pager pagination // -------------------------------------------------- .pager { padding-left: 0; margin: @line-height-computed 0; text-align: center; list-style: none; &:extend(.clearfix all); li { display: inline; > a, > span { display: inline-block; padding: 5px 14px; background-color: @pager-bg; border: 1px solid @pager-border; border-radius: @pager-border-radius; } > a:hover, > a:focus { text-decoration: none; background-color: @pager-hover-bg; } } .next { > a, > span { float: right; } } .previous { > a, > span { float: left; } } .disabled { > a, > a:hover, > a:focus, > span { color: @pager-disabled-color; cursor: @cursor-disabled; background-color: @pager-bg; } } } type.less 0000604 00000013544 15245540247 0006430 0 ustar 00 // stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type // // Typography // -------------------------------------------------- // Headings // ------------------------- h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: @headings-font-family; font-weight: @headings-font-weight; line-height: @headings-line-height; color: @headings-color; small, .small { font-weight: 400; line-height: 1; color: @headings-small-color; } } h1, .h1, h2, .h2, h3, .h3 { margin-top: @line-height-computed; margin-bottom: (@line-height-computed / 2); small, .small { font-size: 65%; } } h4, .h4, h5, .h5, h6, .h6 { margin-top: (@line-height-computed / 2); margin-bottom: (@line-height-computed / 2); small, .small { font-size: 75%; } } h1, .h1 { font-size: @font-size-h1; } h2, .h2 { font-size: @font-size-h2; } h3, .h3 { font-size: @font-size-h3; } h4, .h4 { font-size: @font-size-h4; } h5, .h5 { font-size: @font-size-h5; } h6, .h6 { font-size: @font-size-h6; } // Body text // ------------------------- p { margin: 0 0 (@line-height-computed / 2); } .lead { margin-bottom: @line-height-computed; font-size: floor((@font-size-base * 1.15)); font-weight: 300; line-height: 1.4; @media (min-width: @screen-sm-min) { font-size: (@font-size-base * 1.5); } } // Emphasis & misc // ------------------------- // Ex: (12px small font / 14px base font) * 100% = about 85% small, .small { font-size: floor((100% * @font-size-small / @font-size-base)); } mark, .mark { padding: .2em; background-color: @state-warning-bg; } // Alignment .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } .text-nowrap { white-space: nowrap; } // Transformation .text-lowercase { text-transform: lowercase; } .text-uppercase { text-transform: uppercase; } .text-capitalize { text-transform: capitalize; } // Contextual colors .text-muted { color: @text-muted; } .text-primary { .text-emphasis-variant(@brand-primary); } .text-success { .text-emphasis-variant(@state-success-text); } .text-info { .text-emphasis-variant(@state-info-text); } .text-warning { .text-emphasis-variant(@state-warning-text); } .text-danger { .text-emphasis-variant(@state-danger-text); } // Contextual backgrounds // For now we'll leave these alongside the text classes until v4 when we can // safely shift things around (per SemVer rules). .bg-primary { // Given the contrast here, this is the only class to have its color inverted // automatically. color: #fff; .bg-variant(@brand-primary); } .bg-success { .bg-variant(@state-success-bg); } .bg-info { .bg-variant(@state-info-bg); } .bg-warning { .bg-variant(@state-warning-bg); } .bg-danger { .bg-variant(@state-danger-bg); } // Page header // ------------------------- .page-header { padding-bottom: ((@line-height-computed / 2) - 1); margin: (@line-height-computed * 2) 0 @line-height-computed; border-bottom: 1px solid @page-header-border-color; } // Lists // ------------------------- // Unordered and Ordered lists ul, ol { margin-top: 0; margin-bottom: (@line-height-computed / 2); ul, ol { margin-bottom: 0; } } // List options // Unstyled keeps list items block level, just removes default browser padding and list-style .list-unstyled { padding-left: 0; list-style: none; } // Inline turns list items into inline-block .list-inline { .list-unstyled(); margin-left: -5px; > li { display: inline-block; padding-right: 5px; padding-left: 5px; } } // Description Lists dl { margin-top: 0; // Remove browser default margin-bottom: @line-height-computed; } dt, dd { line-height: @line-height-base; } dt { font-weight: 700; } dd { margin-left: 0; // Undo browser default } // Horizontal description lists // // Defaults to being stacked without any of the below styles applied, until the // grid breakpoint is reached (default of ~768px). .dl-horizontal { dd { &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present } @media (min-width: @dl-horizontal-breakpoint) { dt { float: left; width: (@dl-horizontal-offset - 20); clear: left; text-align: right; .text-overflow(); } dd { margin-left: @dl-horizontal-offset; } } } // Misc // ------------------------- // Abbreviations and acronyms // Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 abbr[title], abbr[data-original-title] { cursor: help; } .initialism { font-size: 90%; .text-uppercase(); } // Blockquotes blockquote { padding: (@line-height-computed / 2) @line-height-computed; margin: 0 0 @line-height-computed; font-size: @blockquote-font-size; border-left: 5px solid @blockquote-border-color; p, ul, ol { &:last-child { margin-bottom: 0; } } // Note: Deprecated small and .small as of v3.1.0 // Context: https://github.com/twbs/bootstrap/issues/11660 footer, small, .small { display: block; font-size: 80%; // back to default font-size line-height: @line-height-base; color: @blockquote-small-color; &:before { content: "\2014 \00A0"; // em dash, nbsp } } } // Opposite alignment of blockquote // // Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0. .blockquote-reverse, blockquote.pull-right { padding-right: 15px; padding-left: 0; text-align: right; border-right: 5px solid @blockquote-border-color; border-left: 0; // Account for citation footer, small, .small { &:before { content: ""; } &:after { content: "\00A0 \2014"; // nbsp, em dash } } } // Addresses address { margin-bottom: @line-height-computed; font-style: normal; line-height: @line-height-base; } responsive-767px-max.joomla.less 0000604 00000001301 15245540247 0012564 0 ustar 00 // // Responsive: Landscape phone to desktop/tablet // -------------------------------------------------- /* Joomla JUI NOTE: Original .modal definition has to be commented */ // > Joomla JUI @media (max-width: 767px) { // Modals div.modal { position: fixed; top: 20px; left: 20px; right: 20px; width: auto; margin: 0; &.fade { top: -100px; } &.fade.in { top: 20px; } } // Modals viewport width div.modal[class*="jviewport-width"] { width: auto; margin: 0; } } // UP TO LANDSCAPE PHONE // --------------------- @media (max-width: 480px) { // Modals div.modal { top: 10px; left: 10px; right: 10px; } } // < Joomla JUI carousel.less 0000604 00000013124 15245540247 0007256 0 ustar 00 // stylelint-disable media-feature-name-no-unknown // // Carousel // -------------------------------------------------- // Wrapper for the slide container and indicators .carousel { position: relative; } .carousel-inner { position: relative; width: 100%; overflow: hidden; > .item { position: relative; display: none; .transition(.6s ease-in-out left); // Account for jankitude on images > img, > a > img { &:extend(.img-responsive); line-height: 1; } // WebKit CSS3 transforms for supported devices @media all and (transform-3d), (-webkit-transform-3d) { .transition-transform(~"0.6s ease-in-out"); .backface-visibility(~"hidden"); .perspective(1000px); &.next, &.active.right { .translate3d(100%, 0, 0); left: 0; } &.prev, &.active.left { .translate3d(-100%, 0, 0); left: 0; } &.next.left, &.prev.right, &.active { .translate3d(0, 0, 0); left: 0; } } } > .active, > .next, > .prev { display: block; } > .active { left: 0; } > .next, > .prev { position: absolute; top: 0; width: 100%; } > .next { left: 100%; } > .prev { left: -100%; } > .next.left, > .prev.right { left: 0; } > .active.left { left: -100%; } > .active.right { left: 100%; } } // Left/right controls for nav // --------------------------- .carousel-control { position: absolute; top: 0; bottom: 0; left: 0; width: @carousel-control-width; font-size: @carousel-control-font-size; color: @carousel-control-color; text-align: center; text-shadow: @carousel-text-shadow; background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug .opacity(@carousel-control-opacity); // We can't have this transition here because WebKit cancels the carousel // animation if you trip this while in the middle of another animation. // Set gradients for backgrounds &.left { #gradient > .horizontal(@start-color: rgba(0, 0, 0, .5); @end-color: rgba(0, 0, 0, .0001)); } &.right { right: 0; left: auto; #gradient > .horizontal(@start-color: rgba(0, 0, 0, .0001); @end-color: rgba(0, 0, 0, .5)); } // Hover/focus state &:hover, &:focus { color: @carousel-control-color; text-decoration: none; outline: 0; .opacity(.9); } // Toggles .icon-prev, .icon-next, .glyphicon-chevron-left, .glyphicon-chevron-right { position: absolute; top: 50%; z-index: 5; display: inline-block; margin-top: -10px; } .icon-prev, .glyphicon-chevron-left { left: 50%; margin-left: -10px; } .icon-next, .glyphicon-chevron-right { right: 50%; margin-right: -10px; } .icon-prev, .icon-next { width: 20px; height: 20px; font-family: serif; line-height: 1; } .icon-prev { &:before { content: "\2039";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) } } .icon-next { &:before { content: "\203a";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) } } } // Optional indicator pips // // Add an unordered list with the following class and add a list item for each // slide your carousel holds. .carousel-indicators { position: absolute; bottom: 10px; left: 50%; z-index: 15; width: 60%; padding-left: 0; margin-left: -30%; text-align: center; list-style: none; li { display: inline-block; width: 10px; height: 10px; margin: 1px; text-indent: -999px; cursor: pointer; // IE8-9 hack for event handling // // Internet Explorer 8-9 does not support clicks on elements without a set // `background-color`. We cannot use `filter` since that's not viewed as a // background color by the browser. Thus, a hack is needed. // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer // // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we // set alpha transparency for the best results possible. background-color: #000 \9; // IE8 background-color: rgba(0, 0, 0, 0); // IE9 border: 1px solid @carousel-indicator-border-color; border-radius: 10px; } .active { width: 12px; height: 12px; margin: 0; background-color: @carousel-indicator-active-bg; } } // Optional captions // ----------------------------- // Hidden by default for smaller viewports .carousel-caption { position: absolute; right: 15%; bottom: 20px; left: 15%; z-index: 10; padding-top: 20px; padding-bottom: 20px; color: @carousel-caption-color; text-align: center; text-shadow: @carousel-text-shadow; & .btn { text-shadow: none; // No shadow for button elements in carousel-caption } } // Scale up controls for tablets and up @media screen and (min-width: @screen-sm-min) { // Scale up the controls a smidge .carousel-control { .glyphicon-chevron-left, .glyphicon-chevron-right, .icon-prev, .icon-next { width: (@carousel-control-font-size * 1.5); height: (@carousel-control-font-size * 1.5); margin-top: (@carousel-control-font-size / -2); font-size: (@carousel-control-font-size * 1.5); } .glyphicon-chevron-left, .icon-prev { margin-left: (@carousel-control-font-size / -2); } .glyphicon-chevron-right, .icon-next { margin-right: (@carousel-control-font-size / -2); } } // Show and left align the captions .carousel-caption { right: 20%; left: 20%; padding-bottom: 30px; } // Move up the indicators .carousel-indicators { bottom: 20px; } } mixins.less 0000604 00000002160 15245540247 0006746 0 ustar 00 // Mixins // -------------------------------------------------- // Utilities @import "mixins/hide-text.less"; @import "mixins/opacity.less"; @import "mixins/image.less"; @import "mixins/labels.less"; @import "mixins/reset-filter.less"; @import "mixins/resize.less"; @import "mixins/responsive-visibility.less"; @import "mixins/size.less"; @import "mixins/tab-focus.less"; @import "mixins/reset-text.less"; @import "mixins/text-emphasis.less"; @import "mixins/text-overflow.less"; @import "mixins/vendor-prefixes.less"; // Components @import "mixins/alerts.less"; @import "mixins/buttons.less"; @import "mixins/panels.less"; @import "mixins/pagination.less"; @import "mixins/list-group.less"; @import "mixins/nav-divider.less"; @import "mixins/forms.less"; @import "mixins/progress-bar.less"; @import "mixins/table-row.less"; // Skins @import "mixins/background-variant.less"; @import "mixins/border-radius.less"; @import "mixins/gradients.less"; // Layout @import "mixins/clearfix.less"; @import "mixins/center-block.less"; @import "mixins/nav-vertical-align.less"; @import "mixins/grid-framework.less"; @import "mixins/grid.less"; thumbnails.less 0000604 00000001443 15245540247 0007610 0 ustar 00 // stylelint-disable selector-no-qualifying-type // // Thumbnails // -------------------------------------------------- // Mixin and adjust the regular image class .thumbnail { display: block; padding: @thumbnail-padding; margin-bottom: @line-height-computed; line-height: @line-height-base; background-color: @thumbnail-bg; border: 1px solid @thumbnail-border; border-radius: @thumbnail-border-radius; .transition(border .2s ease-in-out); > img, a > img { &:extend(.img-responsive); margin-right: auto; margin-left: auto; } // Add a hover state for linked versions only a&:hover, a&:focus, a&.active { border-color: @link-color; } // Image captions .caption { padding: @thumbnail-caption-padding; color: @thumbnail-caption-color; } } responsive-1200px-min.less 0000604 00000001065 15245540247 0011350 0 ustar 00 // // Responsive: Large desktop and up // -------------------------------------------------- @media (min-width: 1200px) { // Fixed grid #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); // Fluid grid #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); // Input grid #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); // Thumbnails .thumbnails { margin-left: -@gridGutterWidth1200; } .thumbnails > li { margin-left: @gridGutterWidth1200; } .row-fluid .thumbnails { margin-left: 0; } } code.less 0000604 00000002573 15245540247 0006361 0 ustar 00 // // Code (inline and block) // -------------------------------------------------- // Inline and block code styles code, kbd, pre, samp { font-family: @font-family-monospace; } // Inline code code { padding: 2px 4px; font-size: 90%; color: @code-color; background-color: @code-bg; border-radius: @border-radius-base; } // User input typically entered via keyboard kbd { padding: 2px 4px; font-size: 90%; color: @kbd-color; background-color: @kbd-bg; border-radius: @border-radius-small; box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); kbd { padding: 0; font-size: 100%; font-weight: 700; box-shadow: none; } } // Blocks of code pre { display: block; padding: ((@line-height-computed - 1) / 2); margin: 0 0 (@line-height-computed / 2); font-size: (@font-size-base - 1); // 14px to 13px line-height: @line-height-base; color: @pre-color; word-break: break-all; word-wrap: break-word; background-color: @pre-bg; border: 1px solid @pre-border-color; border-radius: @border-radius-base; // Account for some code outputs that place code tags in pre tags code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap; background-color: transparent; border-radius: 0; } } // Enable scrollable blocks of code .pre-scrollable { max-height: @pre-scrollable-max-height; overflow-y: scroll; } buttons.less 0000604 00000007200 15245540247 0007135 0 ustar 00 // stylelint-disable selector-no-qualifying-type // // Buttons // -------------------------------------------------- // Base styles // -------------------------------------------------- .btn { display: inline-block; margin-bottom: 0; // For input.btn font-weight: @btn-font-weight; text-align: center; white-space: nowrap; vertical-align: middle; touch-action: manipulation; cursor: pointer; background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 border: 1px solid transparent; .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base); .user-select(none); &, &:active, &.active { &:focus, &.focus { .tab-focus(); } } &:hover, &:focus, &.focus { color: @btn-default-color; text-decoration: none; } &:active, &.active { background-image: none; outline: 0; .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); } &.disabled, &[disabled], fieldset[disabled] & { cursor: @cursor-disabled; .opacity(.65); .box-shadow(none); } a& { &.disabled, fieldset[disabled] & { pointer-events: none; // Future-proof disabling of clicks on `<a>` elements } } } // Alternate buttons // -------------------------------------------------- .btn-default { .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); } .btn-primary { .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); } // Success appears as green .btn-success { .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); } // Info appears as blue-green .btn-info { .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); } // Warning appears as orange .btn-warning { .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); } // Danger and error appear as red .btn-danger { .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); } // Link buttons // ------------------------- // Make a button look and behave like a link .btn-link { font-weight: 400; color: @link-color; border-radius: 0; &, &:active, &.active, &[disabled], fieldset[disabled] & { background-color: transparent; .box-shadow(none); } &, &:hover, &:focus, &:active { border-color: transparent; } &:hover, &:focus { color: @link-hover-color; text-decoration: @link-hover-decoration; background-color: transparent; } &[disabled], fieldset[disabled] & { &:hover, &:focus { color: @btn-link-disabled-color; text-decoration: none; } } } // Button Sizes // -------------------------------------------------- .btn-lg { // line-height: ensure even-numbered height of button next to large input .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large); } .btn-sm { // line-height: ensure proper height of button next to small input .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); } .btn-xs { .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); } // Block button // -------------------------------------------------- .btn-block { display: block; width: 100%; } // Vertically space out multiple block buttons .btn-block + .btn-block { margin-top: 5px; } // Specificity overrides input[type="submit"], input[type="reset"], input[type="button"] { &.btn-block { width: 100%; } } labels-badges.less 0000604 00000003534 15245540247 0010132 0 ustar 00 // // Labels and badges // -------------------------------------------------- // Base classes .label, .badge { display: inline-block; padding: 2px 4px; font-size: @baseFontSize * .846; font-weight: bold; line-height: 14px; // ensure proper line-height if floated color: @white; vertical-align: baseline; white-space: nowrap; text-shadow: 0 -1px 0 rgba(0,0,0,.25); background-color: @grayLight; } // Set unique padding and border-radii .label { .border-radius(3px); } .badge { padding-left: 9px; padding-right: 9px; .border-radius(9px); } // Empty labels/badges collapse .label, .badge { &:empty { display: none; } } // Hover/focus state, but only for links a { &.label:hover, &.label:focus, &.badge:hover, &.badge:focus { color: @white; text-decoration: none; cursor: pointer; } } // Colors // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) .label, .badge { // Important (red) &-important { background-color: @errorText; } &-important[href] { background-color: darken(@errorText, 10%); } // Warnings (orange) &-warning { background-color: @orange; } &-warning[href] { background-color: darken(@orange, 10%); } // Success (green) &-success { background-color: @successText; } &-success[href] { background-color: darken(@successText, 10%); } // Info (turquoise) &-info { background-color: @infoText; } &-info[href] { background-color: darken(@infoText, 10%); } // Inverse (black) &-inverse { background-color: @grayDark; } &-inverse[href] { background-color: darken(@grayDark, 10%); } } // Quick fix for labels/badges in buttons .btn { .label, .badge { position: relative; top: -1px; } } .btn-mini { .label, .badge { top: 0; } } tables.less 0000604 00000011152 15245540247 0006712 0 ustar 00 // stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type // // Tables // -------------------------------------------------- table { background-color: @table-bg; // Table cell sizing // // Reset default table behavior col[class*="col-"] { position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) display: table-column; float: none; } td, th { &[class*="col-"] { position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) display: table-cell; float: none; } } } caption { padding-top: @table-cell-padding; padding-bottom: @table-cell-padding; color: @text-muted; text-align: left; } th { text-align: left; } // Baseline styles .table { width: 100%; max-width: 100%; margin-bottom: @line-height-computed; // Cells > thead, > tbody, > tfoot { > tr { > th, > td { padding: @table-cell-padding; line-height: @line-height-base; vertical-align: top; border-top: 1px solid @table-border-color; } } } // Bottom align for column headings > thead > tr > th { vertical-align: bottom; border-bottom: 2px solid @table-border-color; } // Remove top border from thead by default > caption + thead, > colgroup + thead, > thead:first-child { > tr:first-child { > th, > td { border-top: 0; } } } // Account for multiple tbody instances > tbody + tbody { border-top: 2px solid @table-border-color; } // Nesting .table { background-color: @body-bg; } } // Condensed table w/ half padding .table-condensed { > thead, > tbody, > tfoot { > tr { > th, > td { padding: @table-condensed-cell-padding; } } } } // Bordered version // // Add borders all around the table and between all the columns. .table-bordered { border: 1px solid @table-border-color; > thead, > tbody, > tfoot { > tr { > th, > td { border: 1px solid @table-border-color; } } } > thead > tr { > th, > td { border-bottom-width: 2px; } } } // Zebra-striping // // Default zebra-stripe styles (alternating gray and transparent backgrounds) .table-striped { > tbody > tr:nth-of-type(odd) { background-color: @table-bg-accent; } } // Hover effect // // Placed here since it has to come after the potential zebra striping .table-hover { > tbody > tr:hover { background-color: @table-bg-hover; } } // Table backgrounds // // Exact selectors below required to override `.table-striped` and prevent // inheritance to nested tables. // Generate the contextual variants .table-row-variant(active; @table-bg-active); .table-row-variant(success; @state-success-bg); .table-row-variant(info; @state-info-bg); .table-row-variant(warning; @state-warning-bg); .table-row-variant(danger; @state-danger-bg); // Responsive tables // // Wrap your tables in `.table-responsive` and we'll make them mobile friendly // by enabling horizontal scrolling. Only applies <768px. Everything above that // will display normally. .table-responsive { min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) overflow-x: auto; @media screen and (max-width: @screen-xs-max) { width: 100%; margin-bottom: (@line-height-computed * .75); overflow-y: hidden; -ms-overflow-style: -ms-autohiding-scrollbar; border: 1px solid @table-border-color; // Tighten up spacing > .table { margin-bottom: 0; // Ensure the content doesn't wrap > thead, > tbody, > tfoot { > tr { > th, > td { white-space: nowrap; } } } } // Special overrides for the bordered tables > .table-bordered { border: 0; // Nuke the appropriate borders so that the parent can handle them > thead, > tbody, > tfoot { > tr { > th:first-child, > td:first-child { border-left: 0; } > th:last-child, > td:last-child { border-right: 0; } } } // Only nuke the last row's bottom-border in `tbody` and `tfoot` since // chances are there will be only one `tr` in a `thead` and that would // remove the border altogether. > tbody, > tfoot { > tr:last-child { > th, > td { border-bottom: 0; } } } } } } sprites.less 0000604 00000025131 15245540247 0007133 0 ustar 00 // // Sprites // -------------------------------------------------- // ICONS // ----- // All icons receive the styles of the <i> tag with a base class // of .i and are then given a unique class to add width, height, // and background-position. Your resulting HTML will look like // <i class="icon-inbox"></i>. // For the white version of the icons, just add the .icon-white class: // <i class="icon-inbox icon-white"></i> [class^="icon-"], [class*=" icon-"] { display: inline-block; width: 14px; height: 14px; .ie7-restore-right-whitespace(); line-height: 14px; vertical-align: text-top; background-image: url("@{iconSpritePath}"); background-position: 14px 14px; background-repeat: no-repeat; margin-top: 1px; } /* White icons with optional class, or on hover/focus/active states of certain elements */ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], .nav-list > .active > a > [class^="icon-"], .nav-list > .active > a > [class*=" icon-"], .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], .dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], .dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], .dropdown-submenu:focus > a > [class^="icon-"], .dropdown-submenu:hover > a > [class*=" icon-"], .dropdown-submenu:focus > a > [class*=" icon-"] { background-image: url("@{iconWhiteSpritePath}"); } .icon-glass { background-position: 0 0; } .icon-music { background-position: -24px 0; } .icon-search { background-position: -48px 0; } .icon-envelope { background-position: -72px 0; } .icon-heart { background-position: -96px 0; } .icon-star { background-position: -120px 0; } .icon-star-empty { background-position: -144px 0; } .icon-user { background-position: -168px 0; } .icon-film { background-position: -192px 0; } .icon-th-large { background-position: -216px 0; } .icon-th { background-position: -240px 0; } .icon-th-list { background-position: -264px 0; } .icon-ok { background-position: -288px 0; } .icon-remove { background-position: -312px 0; } .icon-zoom-in { background-position: -336px 0; } .icon-zoom-out { background-position: -360px 0; } .icon-off { background-position: -384px 0; } .icon-signal { background-position: -408px 0; } .icon-cog { background-position: -432px 0; } .icon-trash { background-position: -456px 0; } .icon-home { background-position: 0 -24px; } .icon-file { background-position: -24px -24px; } .icon-time { background-position: -48px -24px; } .icon-road { background-position: -72px -24px; } .icon-download-alt { background-position: -96px -24px; } .icon-download { background-position: -120px -24px; } .icon-upload { background-position: -144px -24px; } .icon-inbox { background-position: -168px -24px; } .icon-play-circle { background-position: -192px -24px; } .icon-repeat { background-position: -216px -24px; } .icon-refresh { background-position: -240px -24px; } .icon-list-alt { background-position: -264px -24px; } .icon-lock { background-position: -287px -24px; } // 1px off .icon-flag { background-position: -312px -24px; } .icon-headphones { background-position: -336px -24px; } .icon-volume-off { background-position: -360px -24px; } .icon-volume-down { background-position: -384px -24px; } .icon-volume-up { background-position: -408px -24px; } .icon-qrcode { background-position: -432px -24px; } .icon-barcode { background-position: -456px -24px; } .icon-tag { background-position: 0 -48px; } .icon-tags { background-position: -25px -48px; } // 1px off .icon-book { background-position: -48px -48px; } .icon-bookmark { background-position: -72px -48px; } .icon-print { background-position: -96px -48px; } .icon-camera { background-position: -120px -48px; } .icon-font { background-position: -144px -48px; } .icon-bold { background-position: -167px -48px; } // 1px off .icon-italic { background-position: -192px -48px; } .icon-text-height { background-position: -216px -48px; } .icon-text-width { background-position: -240px -48px; } .icon-align-left { background-position: -264px -48px; } .icon-align-center { background-position: -288px -48px; } .icon-align-right { background-position: -312px -48px; } .icon-align-justify { background-position: -336px -48px; } .icon-list { background-position: -360px -48px; } .icon-indent-left { background-position: -384px -48px; } .icon-indent-right { background-position: -408px -48px; } .icon-facetime-video { background-position: -432px -48px; } .icon-picture { background-position: -456px -48px; } .icon-pencil { background-position: 0 -72px; } .icon-map-marker { background-position: -24px -72px; } .icon-adjust { background-position: -48px -72px; } .icon-tint { background-position: -72px -72px; } .icon-edit { background-position: -96px -72px; } .icon-share { background-position: -120px -72px; } .icon-check { background-position: -144px -72px; } .icon-move { background-position: -168px -72px; } .icon-step-backward { background-position: -192px -72px; } .icon-fast-backward { background-position: -216px -72px; } .icon-backward { background-position: -240px -72px; } .icon-play { background-position: -264px -72px; } .icon-pause { background-position: -288px -72px; } .icon-stop { background-position: -312px -72px; } .icon-forward { background-position: -336px -72px; } .icon-fast-forward { background-position: -360px -72px; } .icon-step-forward { background-position: -384px -72px; } .icon-eject { background-position: -408px -72px; } .icon-chevron-left { background-position: -432px -72px; } .icon-chevron-right { background-position: -456px -72px; } .icon-plus-sign { background-position: 0 -96px; } .icon-minus-sign { background-position: -24px -96px; } .icon-remove-sign { background-position: -48px -96px; } .icon-ok-sign { background-position: -72px -96px; } .icon-question-sign { background-position: -96px -96px; } .icon-info-sign { background-position: -120px -96px; } .icon-screenshot { background-position: -144px -96px; } .icon-remove-circle { background-position: -168px -96px; } .icon-ok-circle { background-position: -192px -96px; } .icon-ban-circle { background-position: -216px -96px; } .icon-arrow-left { background-position: -240px -96px; } .icon-arrow-right { background-position: -264px -96px; } .icon-arrow-up { background-position: -289px -96px; } // 1px off .icon-arrow-down { background-position: -312px -96px; } .icon-share-alt { background-position: -336px -96px; } .icon-resize-full { background-position: -360px -96px; } .icon-resize-small { background-position: -384px -96px; } .icon-plus { background-position: -408px -96px; } .icon-minus { background-position: -433px -96px; } .icon-asterisk { background-position: -456px -96px; } .icon-exclamation-sign { background-position: 0 -120px; } .icon-gift { background-position: -24px -120px; } .icon-leaf { background-position: -48px -120px; } .icon-fire { background-position: -72px -120px; } .icon-eye-open { background-position: -96px -120px; } .icon-eye-close { background-position: -120px -120px; } .icon-warning-sign { background-position: -144px -120px; } .icon-plane { background-position: -168px -120px; } .icon-calendar { background-position: -192px -120px; } .icon-random { background-position: -216px -120px; width: 16px; } .icon-comment { background-position: -240px -120px; } .icon-magnet { background-position: -264px -120px; } .icon-chevron-up { background-position: -288px -120px; } .icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off .icon-retweet { background-position: -336px -120px; } .icon-shopping-cart { background-position: -360px -120px; } .icon-folder-close { background-position: -384px -120px; width: 16px; } .icon-folder-open { background-position: -408px -120px; width: 16px; } .icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off .icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off .icon-hdd { background-position: 0 -144px; } .icon-bullhorn { background-position: -24px -144px; } .icon-bell { background-position: -48px -144px; } .icon-certificate { background-position: -72px -144px; } .icon-thumbs-up { background-position: -96px -144px; } .icon-thumbs-down { background-position: -120px -144px; } .icon-hand-right { background-position: -144px -144px; } .icon-hand-left { background-position: -168px -144px; } .icon-hand-up { background-position: -192px -144px; } .icon-hand-down { background-position: -216px -144px; } .icon-circle-arrow-right { background-position: -240px -144px; } .icon-circle-arrow-left { background-position: -264px -144px; } .icon-circle-arrow-up { background-position: -288px -144px; } .icon-circle-arrow-down { background-position: -312px -144px; } .icon-globe { background-position: -336px -144px; } .icon-wrench { background-position: -360px -144px; } .icon-tasks { background-position: -384px -144px; } .icon-filter { background-position: -408px -144px; } .icon-briefcase { background-position: -432px -144px; } .icon-fullscreen { background-position: -456px -144px; } button-groups.less 0000604 00000013153 15245540247 0010273 0 ustar 00 // stylelint-disable selector-no-qualifying-type */ // // Button groups // -------------------------------------------------- // Make the div behave like a button .btn-group, .btn-group-vertical { position: relative; display: inline-block; vertical-align: middle; // match .btn alignment given font-size hack above > .btn { position: relative; float: left; // Bring the "active" button to the front &:hover, &:focus, &:active, &.active { z-index: 2; } } } // Prevent double borders when buttons are next to each other .btn-group { .btn + .btn, .btn + .btn-group, .btn-group + .btn, .btn-group + .btn-group { margin-left: -1px; } } // Optional: Group multiple button groups together for a toolbar .btn-toolbar { margin-left: -5px; // Offset the first child's margin &:extend(.clearfix all); .btn, .btn-group, .input-group { float: left; } > .btn, > .btn-group, > .input-group { margin-left: 5px; } } .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { border-radius: 0; } // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match .btn-group > .btn:first-child { margin-left: 0; &:not(:last-child):not(.dropdown-toggle) { .border-right-radius(0); } } // Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { .border-left-radius(0); } // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) .btn-group > .btn-group { float: left; } .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group > .btn-group:first-child:not(:last-child) { > .btn:last-child, > .dropdown-toggle { .border-right-radius(0); } } .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { .border-left-radius(0); } // On active and open, don't show outline .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } // Sizing // // Remix the default button sizing classes into new ones for easier manipulation. .btn-group-xs > .btn { &:extend(.btn-xs); } .btn-group-sm > .btn { &:extend(.btn-sm); } .btn-group-lg > .btn { &:extend(.btn-lg); } // Split button dropdowns // ---------------------- // Give the line between buttons some depth .btn-group > .btn + .dropdown-toggle { padding-right: 8px; padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle { padding-right: 12px; padding-left: 12px; } // The clickable button for toggling the menu // Remove the gradient and set the same inset shadow as the :active state .btn-group.open .dropdown-toggle { .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); // Show no shadow for `.btn-link` since it has no other button styles. &.btn-link { .box-shadow(none); } } // Reposition the caret .btn .caret { margin-left: 0; } // Carets in other button sizes .btn-lg .caret { border-width: @caret-width-large @caret-width-large 0; border-bottom-width: 0; } // Upside down carets for .dropup .dropup .btn-lg .caret { border-width: 0 @caret-width-large @caret-width-large; } // Vertical button groups // ---------------------- .btn-group-vertical { > .btn, > .btn-group, > .btn-group > .btn { display: block; float: none; width: 100%; max-width: 100%; } // Clear floats so dropdown menus can be properly placed > .btn-group { &:extend(.clearfix all); > .btn { float: none; } } > .btn + .btn, > .btn + .btn-group, > .btn-group + .btn, > .btn-group + .btn-group { margin-top: -1px; margin-left: 0; } } .btn-group-vertical > .btn { &:not(:first-child):not(:last-child) { border-radius: 0; } &:first-child:not(:last-child) { .border-top-radius(@btn-border-radius-base); .border-bottom-radius(0); } &:last-child:not(:first-child) { .border-top-radius(0); .border-bottom-radius(@btn-border-radius-base); } } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group-vertical > .btn-group:first-child:not(:last-child) { > .btn:last-child, > .dropdown-toggle { .border-bottom-radius(0); } } .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { .border-top-radius(0); } // Justified button groups // ---------------------- .btn-group-justified { display: table; width: 100%; table-layout: fixed; border-collapse: separate; > .btn, > .btn-group { display: table-cell; float: none; width: 1%; } > .btn-group .btn { width: 100%; } > .btn-group .dropdown-menu { left: auto; } } // Checkbox and radio options // // In order to support the browser's form validation feedback, powered by the // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use // `display: none;` or `visibility: hidden;` as that also hides the popover. // Simply visually hiding the inputs via `opacity` would leave them clickable in // certain cases which is prevented by using `clip` and `pointer-events`. // This way, we ensure a DOM element is visible to position the popover from. // // See https://github.com/twbs/bootstrap/pull/12794 and // https://github.com/twbs/bootstrap/pull/14559 for more information. [data-toggle="buttons"] { > .btn, > .btn-group > .btn { input[type="radio"], input[type="checkbox"] { position: absolute; clip: rect(0, 0, 0, 0); pointer-events: none; } } } bootstrap-rtl.less 0000604 00000030771 15245540247 0010264 0 ustar 00 /* Bootstrap RTL */ /* Pull right or left */ .pull-right { float: left; } .pull-left { float: right; } /* Tables */ .table th, .table td { text-align: right; } /* Navbar */ .navbar .brand { float: right; padding: 8px 20px 8px 12px; margin-right: -20px; margin-left: 0; } .navbar .nav, .navbar .nav > li { float: left; } .navbar .nav.pull-right { margin-right: 10px; margin-left: 0px; } .pull-right > .dropdown-menu { left: 0; right: auto; } /* Grid */ [class*="span"] { float: right; margin-right: 20px; margin-left: 0px; } .row-fluid [class*="span"] { float: right; margin-right: 2.127659574%; *margin-right: 2.0744680846382977%; margin-left: 0px!important; *margin-left: 0px!important; } .row-fluid [class*="span"]:first-child { margin-right: 0; } /* Forms */ .form-horizontal .control-label { float: right; width: auto; padding-left: 5px; padding-right: 0; text-align: right; } .form-horizontal .controls { *display: inline-block; *padding-right: 20px; margin-right: 160px; *margin-right: 0; margin-left: 0; text-align: right; margin-top: 6px; } .form-horizontal .controls:first-child { *padding-right: 160px; } .form-vertical .controls { *display: inline-block; *padding-right: 20px; margin-right: 0; *margin-right: 0; margin-left: 0; text-align: right; margin-top: 6px; } .form-vertical .control-label { float: none; padding-right: 0; padding-top: 0; text-align: right; width: auto; } .chzn-container-single-nosearch .chzn-search input { position: absolute; left: -9000px; display:none; } /* Nav */ /* Tabs */ .nav-tabs > li, .nav-pills > li { float: right; } .nav-stacked > li { float: none; } /* Buttons */ /* Button Groups */ .btn-group > .btn { float: right; margin-right: -1px; margin-left: 0; } .btn-group > .btn:first-child { margin-right: 0; } .btn-group > .btn:first-child, .radio.btn-group > label:first-of-type { margin-left: 0; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-topleft: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -moz-border-radius-topright: 4px; } .btn-group > .btn:last-child, .btn-group > .dropdown-toggle { -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; -moz-border-radius-topright: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-topleft: 4px; -moz-border-radius-bottomleft: 4px; } .btn-group > .btn.large:first-child { -webkit-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; -webkit-border-top-left-radius: 0px; border-top-left-radius: 0px; -moz-border-radius-bottomleft: 0px; -moz-border-radius-topleft: 0px; margin-right: 0; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -moz-border-radius-bottomright: 6px; -moz-border-radius-topright: 6px; } .btn-group > .btn.large:last-child, .btn-group > .large.dropdown-toggle { -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; -moz-border-radius-topright: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -moz-border-radius-topleft: 6px; -moz-border-radius-bottomleft: 6px; } .btn-group > .btn:first-child:last-child { margin-left: 0; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-topleft: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -moz-border-radius-topright: 4px; } /* Forms */ /* Input Prepend and Append */ .input-prepend .add-on{ float: right; } .input-append .add-on{ float: none; } .input-prepend .add-on, .input-prepend .btn { margin-left: -1px; margin-right: 0; } .input-prepend .add-on:first-child, .input-prepend .btn:first-child { -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; } .input-append input, .input-append select, .input-append .uneditable-input { -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; } .input-append .uneditable-input { border-left-color: #ccc; border-right-color: #eee; } .input-append .add-on:last-child, .input-append .btn:last-child { -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; border-radius: 3px 0 0 3px; } .input-prepend.input-append input, .input-prepend.input-append select, .input-prepend.input-append .uneditable-input { -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child { margin-left: -1px; margin-right: 0px; -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; float: right; } .input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child { margin-right: -1px; margin-left: 0px; -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; border-radius: 3px 0 0 3px; } .input-prepend input, .input-prepend select, .input-prepend .uneditable-input { -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; border-radius: 3px 0 0 3px; } /* start myrtl */ body { direction:rtl; } .pager .next a { float: left; } .pager .previous a { float: right; } .icon-arrow-right { background-position: -241px -94px; float: left; padding-right: 3px; } .icon-arrow-left { background-position: -264px -95px; } .icon-refresh { background-position: -240px -23px; } #refresh-status { background-position: right center; padding-left: 0; padding-right: 25px; } .radio input[type="radio"], .checkbox input[type="checkbox"] { float: right; margin-right: 2px; margin-left: 5px; } .list-striped, .row-striped { list-style: none; line-height: 18px; text-align: right; } .btn-group + .btn-group { margin-right: 5px; margin-left: 0px; } .tabs-left > .nav-tabs { float: right; margin-left: 19px; border-left: 1px solid #DDD; margin-right: 0px; border-right: 0px; } .tabs-left > .nav-tabs .active > a, .tabs-left > .nav-tabs .active > a:hover { border-color: #DDD #DDD #DDD transparent; } .tabs-left > .nav-tabs > li > a { margin-left: -1px; -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; margin-right: 0px; } .controls > .radio:first-child, .controls > .checkbox:first-child { padding-top: 0px; } .btn-toolbar { margin-top: 14px; margin-bottom: 3px; } .navbar .nav > li { float:right; } .icon-folder-2 { line-height: 25px; padding-left: 5px; } .navbar .nav > li > a { padding: 8px 10px; color: #FFFFFF; } .navigation .nav li li .nav-child { left: auto; right: 100%; &:before { left: auto; right: -7px; border-left: 7px solid rgba(0, 0, 0, 0.2); border-right-width: 0; } &:after { left: auto; right: -6px; border-left: 6px solid #ffffff; border-right-width: 0; } } .container-logo { padding-top: 6px; float: left; text-align: left; } .modal-header .close { float: left; } .pagination a { float: right; } .pagination ul { display: inline-block; *display: inline; /* IE7 inline-block hack */ *zoom: 1; margin-right: 0; margin-bottom: 0; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .pagination a { float: right; padding: 0 14px; line-height: 34px; text-decoration: none; border: 1px solid #ddd; border-right-width: 0; } .pagination li:first-child a { border-right-width: 1px; -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; } .pagination li:last-child a { -webkit-border-radius: 3px 0 0 3px ; -moz-border-radius: 3px 0 0 3px; border-radius: 3px 0 0 3px; } .pagination-centered { text-align: center; } .pagination-right { text-align: right; } .icon-first:before { content: "\e000"; } .icon-previous:before { content: "\7d"; } .icon-last:before { content: "\7b"; } .icon-next:before { content: "\7c"; } .dl-horizontal dt { float: right; text-align: left; clear: right; } .dl-horizontal dd { margin-left: 0; margin-right: 180px; } .dl-horizontal dt, .profile> ul { margin: 9px 25px 0 0; } /* end myrtl */ .dropdown-submenu > a:after { float: left; border-width: 5px 5px 5px 0; margin-left: -10px; border-left-color: transparent; border-right-color: #CCC; } /* Subcategories badge */ .badge { margin-left: 10px; } /* Align tip text to right */ .tip-text { text-align:right; } /* Other corrections */ .icon-file-add:before { content: "("; } .icon-eye-open:before, .icon-eye:before { content: ">"; } .icon-checkin:before, .icon-checkbox:before { content: "<"; } .icon-save-new:before, .icon-plus-2:before { content: "["; } .btn-toolbar .btn + .btn, .btn-toolbar .btn-group + .btn, .btn-toolbar .btn + .btn-group { margin-left: 0; margin-right: 5px; } .btn-toolbar .btn-wrapper { display: inline-block; margin: 0 5px 5px 0; } .btn-group > .btn + .btn { margin-left: 0; margin-right: -1px; } .input-append .add-on, .input-append .btn, .input-prepend .add-on, .input-prepend .btn { margin-left: 0; margin-right: -1px; } .table-bordered { border-right-width: 0; border-left-width: 1px; border-right-style: none; border-left-style: solid; border-right-color: -moz-use-text-color; border-left-color: #DDDDDD; } .chzn-container-single .chzn-single { padding-right: 8px; padding-left: 0; } .chzn-container-single .chzn-single span { margin-left: 26px; margin-right: 0; } .chzn-container-single .chzn-single abbr { left: 26px; right: auto; } .chzn-container-single .chzn-single div { left: 0; right: auto; } .chzn-container-multi .chzn-choices li { float: right; } .chzn-container-multi .chzn-choices .search-choice { margin-right: 5px; margin-left: 0; padding-right: 5px; padding-left: 20px; } .chzn-container-multi .chzn-choices .search-choice .search-choice-close { left: 3px; right: auto; } .chzn-container.chzn-with-drop .chzn-drop { right: 0; left: auto; } .chzn-container-single.chzn-container-single-nosearch .chzn-search { position: absolute; right: -9999px; left: auto; } .chzn-container .chzn-drop { right: -9999px; left: auto; } .alert { padding-right: 14px; padding-left: 35px; } .alert .close { left: -21px; right: auto; } .close { float: left; } .form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox { margin-bottom: 9px; } .form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { float: right; margin-left: 3px; margin-right: 0; } /* Media Manager */ .com_media .container-main .media { display: inline-block; } .thumbnails > li { float: right; margin-bottom: 18px; margin-right: 20px; } #mediamanager-form .description, #mediamanager-form .filesize, #mediamanager-form .dimensions { direction: ltr; } /* Tooltip/Popover */ .popover, .tooltip-inner { text-align: right; } .popover.top .arrow, .popover.bottom .arrow { margin-right: -11px; } .popover.top .arrow:after, .popover.bottom .arrow:after { margin-right: -10px; } /* Media queries */ @media (max-width: 480px) { .btn-toolbar .btn-wrapper { display: block; margin: 0 0 5px 0; } .btn-toolbar .btn-wrapper .btn { margin-left: 0px; margin-right: 10px; } } /*Print pop-up*/ #pop-print { float: left; margin: 10px; } /*url fields*/ #install_url, #install_directory, #jform_customurl, #jform_link, #jform_params_url, input[type="url"] { text-align: left; direction: ltr; } /* Menu Module front-end */ #aside .nav .nav-child { border-left: 0; border-right: 2px solid #ddd; padding-left: 0; padding-right: 5px; } /* Dropdown frontend */ .dropdown-menu { text-align: right; } /* Icon whitespacing */ [class^="icon-"], [class*=" icon-"] { margin-left: .25em; } modals.less 0000604 00000006716 15245540247 0006731 0 ustar 00 // // Modals // -------------------------------------------------- // .modal-open - body class for killing the scroll // .modal - container to scroll within // .modal-dialog - positioning shell for the actual modal // .modal-content - actual modal w/ bg and corners and shit // Kill the scroll on the body .modal-open { overflow: hidden; } // Container that the modal scrolls within .modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: @zindex-modal; display: none; overflow: hidden; -webkit-overflow-scrolling: touch; // Prevent Chrome on Windows from adding a focus outline. For details, see // https://github.com/twbs/bootstrap/pull/10951. outline: 0; // When fading in the modal, animate it to slide down &.fade .modal-dialog { .translate(0, -25%); .transition-transform(~"0.3s ease-out"); } &.in .modal-dialog { .translate(0, 0); } } .modal-open .modal { overflow-x: hidden; overflow-y: auto; } // Shell div to position the modal with bottom padding .modal-dialog { position: relative; width: auto; margin: 10px; } // Actual modal .modal-content { position: relative; background-color: @modal-content-bg; background-clip: padding-box; border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) border: 1px solid @modal-content-border-color; border-radius: @border-radius-large; .box-shadow(0 3px 9px rgba(0, 0, 0, .5)); // Remove focus outline from opened modal outline: 0; } // Modal background .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: @zindex-modal-background; background-color: @modal-backdrop-bg; // Fade for backdrop &.fade { .opacity(0); } &.in { .opacity(@modal-backdrop-opacity); } } // Modal header // Top section of the modal w/ title and dismiss .modal-header { padding: @modal-title-padding; border-bottom: 1px solid @modal-header-border-color; &:extend(.clearfix all); } // Close icon .modal-header .close { margin-top: -2px; } // Title text within header .modal-title { margin: 0; line-height: @modal-title-line-height; } // Modal body // Where all modal content resides (sibling of .modal-header and .modal-footer) .modal-body { position: relative; padding: @modal-inner-padding; } // Footer (for actions) .modal-footer { padding: @modal-inner-padding; text-align: right; // right align buttons border-top: 1px solid @modal-footer-border-color; &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons // Properly space out buttons .btn + .btn { margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs margin-left: 5px; } // but override that for button groups .btn-group .btn + .btn { margin-left: -1px; } // and override it for block buttons as well .btn-block + .btn-block { margin-left: 0; } } // Measure scrollbar width for padding body during modal show/hide .modal-scrollbar-measure { position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll; } // Scale up the modal @media (min-width: @screen-sm-min) { // Automatically set modal's width for larger viewports .modal-dialog { width: @modal-md; margin: 30px auto; } .modal-content { .box-shadow(0 5px 15px rgba(0, 0, 0, .5)); } // Modal sizes .modal-sm { width: @modal-sm; } } @media (min-width: @screen-md-min) { .modal-lg { width: @modal-lg; } } navs.less 0000604 00000011607 15245540247 0006414 0 ustar 00 // stylelint-disable selector-no-qualifying-type, selector-max-type // // Navs // -------------------------------------------------- // Base class // -------------------------------------------------- .nav { padding-left: 0; // Override default ul/ol margin-bottom: 0; list-style: none; &:extend(.clearfix all); > li { position: relative; display: block; > a { position: relative; display: block; padding: @nav-link-padding; &:hover, &:focus { text-decoration: none; background-color: @nav-link-hover-bg; } } // Disabled state sets text to gray and nukes hover/tab effects &.disabled > a { color: @nav-disabled-link-color; &:hover, &:focus { color: @nav-disabled-link-hover-color; text-decoration: none; cursor: @cursor-disabled; background-color: transparent; } } } // Open dropdowns .open > a { &, &:hover, &:focus { background-color: @nav-link-hover-bg; border-color: @link-color; } } // Nav dividers (deprecated with v3.0.1) // // This should have been removed in v3 with the dropping of `.nav-list`, but // we missed it. We don't currently support this anywhere, but in the interest // of maintaining backward compatibility in case you use it, it's deprecated. .nav-divider { .nav-divider(); } // Prevent IE8 from misplacing imgs // // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 > li > a > img { max-width: none; } } // Tabs // ------------------------- // Give the tabs something to sit on .nav-tabs { border-bottom: 1px solid @nav-tabs-border-color; > li { float: left; // Make the list-items overlay the bottom border margin-bottom: -1px; // Actual tabs (as links) > a { margin-right: 2px; line-height: @line-height-base; border: 1px solid transparent; border-radius: @border-radius-base @border-radius-base 0 0; &:hover { border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color; } } // Active state, and its :hover to override normal :hover &.active > a { &, &:hover, &:focus { color: @nav-tabs-active-link-hover-color; cursor: default; background-color: @nav-tabs-active-link-hover-bg; border: 1px solid @nav-tabs-active-link-hover-border-color; border-bottom-color: transparent; } } } // pulling this in mainly for less shorthand &.nav-justified { .nav-justified(); .nav-tabs-justified(); } } // Pills // ------------------------- .nav-pills { > li { float: left; // Links rendered as pills > a { border-radius: @nav-pills-border-radius; } + li { margin-left: 2px; } // Active state &.active > a { &, &:hover, &:focus { color: @nav-pills-active-link-hover-color; background-color: @nav-pills-active-link-hover-bg; } } } } // Stacked pills .nav-stacked { > li { float: none; + li { margin-top: 2px; margin-left: 0; // no need for this gap between nav items } } } // Nav variations // -------------------------------------------------- // Justified nav links // ------------------------- .nav-justified { width: 100%; > li { float: none; > a { margin-bottom: 5px; text-align: center; } } > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: @screen-sm-min) { > li { display: table-cell; width: 1%; > a { margin-bottom: 0; } } } } // Move borders to anchors instead of bottom of list // // Mixin for adding on top the shared `.nav-justified` styles for our tabs .nav-tabs-justified { border-bottom: 0; > li > a { // Override margin from .nav-tabs margin-right: 0; border-radius: @border-radius-base; } > .active > a, > .active > a:hover, > .active > a:focus { border: 1px solid @nav-tabs-justified-link-border-color; } @media (min-width: @screen-sm-min) { > li > a { border-bottom: 1px solid @nav-tabs-justified-link-border-color; border-radius: @border-radius-base @border-radius-base 0 0; } > .active > a, > .active > a:hover, > .active > a:focus { border-bottom-color: @nav-tabs-justified-active-link-border-color; } } } // Tabbable tabs // ------------------------- // Hide tabbable panes to start, show them when `.active` .tab-content { > .tab-pane { display: none; } > .active { display: block; } } // Dropdowns // ------------------------- // Specific dropdowns .nav-tabs .dropdown-menu { // make dropdown border overlap tab border margin-top: -1px; // Remove the top rounded corners here since there is a hard edge above the menu .border-top-radius(0); } tooltip.less 0000604 00000005671 15245540247 0007143 0 ustar 00 // // Tooltips // -------------------------------------------------- // Base class .tooltip { position: absolute; z-index: @zindex-tooltip; display: block; // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. // So reset our font and text properties to avoid inheriting weird values. .reset-text(); font-size: @font-size-small; .opacity(0); &.in { .opacity(@tooltip-opacity); } &.top { padding: @tooltip-arrow-width 0; margin-top: -3px; } &.right { padding: 0 @tooltip-arrow-width; margin-left: 3px; } &.bottom { padding: @tooltip-arrow-width 0; margin-top: 3px; } &.left { padding: 0 @tooltip-arrow-width; margin-left: -3px; } // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 &.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -@tooltip-arrow-width; border-width: @tooltip-arrow-width @tooltip-arrow-width 0; border-top-color: @tooltip-arrow-color; } &.top-left .tooltip-arrow { right: @tooltip-arrow-width; bottom: 0; margin-bottom: -@tooltip-arrow-width; border-width: @tooltip-arrow-width @tooltip-arrow-width 0; border-top-color: @tooltip-arrow-color; } &.top-right .tooltip-arrow { bottom: 0; left: @tooltip-arrow-width; margin-bottom: -@tooltip-arrow-width; border-width: @tooltip-arrow-width @tooltip-arrow-width 0; border-top-color: @tooltip-arrow-color; } &.right .tooltip-arrow { top: 50%; left: 0; margin-top: -@tooltip-arrow-width; border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0; border-right-color: @tooltip-arrow-color; } &.left .tooltip-arrow { top: 50%; right: 0; margin-top: -@tooltip-arrow-width; border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width; border-left-color: @tooltip-arrow-color; } &.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -@tooltip-arrow-width; border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; border-bottom-color: @tooltip-arrow-color; } &.bottom-left .tooltip-arrow { top: 0; right: @tooltip-arrow-width; margin-top: -@tooltip-arrow-width; border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; border-bottom-color: @tooltip-arrow-color; } &.bottom-right .tooltip-arrow { top: 0; left: @tooltip-arrow-width; margin-top: -@tooltip-arrow-width; border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; border-bottom-color: @tooltip-arrow-color; } } // Wrapper for the tooltip content .tooltip-inner { max-width: @tooltip-max-width; padding: 3px 8px; color: @tooltip-color; text-align: center; background-color: @tooltip-bg; border-radius: @border-radius-base; } // Arrows .tooltip-arrow { position: absolute; width: 0; height: 0; border-color: transparent; border-style: solid; } breadcrumbs.less 0000604 00000001122 15245540247 0007725 0 ustar 00 // // Breadcrumbs // -------------------------------------------------- .breadcrumb { padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; margin-bottom: @line-height-computed; list-style: none; background-color: @breadcrumb-bg; border-radius: @border-radius-base; > li { display: inline-block; + li:before { padding: 0 5px; color: @breadcrumb-color; content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space } } > .active { color: @breadcrumb-active-color; } } responsive.less 0000604 00000002055 15245540247 0007637 0 ustar 00 /*! * Bootstrap Responsive v2.3.2 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ // Responsive.less // For phone and tablet devices // ------------------------------------------------------------- // REPEAT VARIABLES & MIXINS // ------------------------- // Required since we compile the responsive stuff separately @import "variables.less"; // Modify this for custom colors, font-sizes, etc @import "mixins.less"; // RESPONSIVE CLASSES // ------------------ @import "responsive-utilities.less"; // MEDIA QUERIES // ------------------ // Large desktops @import "responsive-1200px-min.less"; // Tablets to regular desktops @import "responsive-768px-979px.less"; // Phones to portrait tablets and narrow desktops @import "responsive-767px-max.less"; // RESPONSIVE NAVBAR // ------------------ // From 979px and below, show a button to toggle navbar contents @import "responsive-navbar.less"; wells.less 0000604 00000001025 15245540247 0006564 0 ustar 00 // // Wells // -------------------------------------------------- // Base class .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: @well-bg; border: 1px solid @well-border; border-radius: @border-radius-base; .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05)); blockquote { border-color: #ddd; border-color: rgba(0, 0, 0, .15); } } // Sizes .well-lg { padding: 24px; border-radius: @border-radius-large; } .well-sm { padding: 9px; border-radius: @border-radius-small; } navbar.less 0000604 00000034605 15245540247 0006721 0 ustar 00 // stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, selector-max-class, declaration-no-important, selector-no-qualifying-type // // Navbars // -------------------------------------------------- // Wrapper and base class // // Provide a static navbar from which we expand to create full-width, fixed, and // other navbar variations. .navbar { position: relative; min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) margin-bottom: @navbar-margin-bottom; border: 1px solid transparent; // Prevent floats from breaking the navbar &:extend(.clearfix all); @media (min-width: @grid-float-breakpoint) { border-radius: @navbar-border-radius; } } // Navbar heading // // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy // styling of responsive aspects. .navbar-header { &:extend(.clearfix all); @media (min-width: @grid-float-breakpoint) { float: left; } } // Navbar collapse (body) // // Group your navbar content into this for easy collapsing and expanding across // various device sizes. By default, this content is collapsed when <768px, but // will expand past that for a horizontal display. // // To start (on mobile devices) the navbar links, forms, and buttons are stacked // vertically and include a `max-height` to overflow in case you have too much // content for the user's viewport. .navbar-collapse { padding-right: @navbar-padding-horizontal; padding-left: @navbar-padding-horizontal; overflow-x: visible; border-top: 1px solid transparent; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); &:extend(.clearfix all); -webkit-overflow-scrolling: touch; &.in { overflow-y: auto; } @media (min-width: @grid-float-breakpoint) { width: auto; border-top: 0; box-shadow: none; &.collapse { display: block !important; height: auto !important; padding-bottom: 0; // Override default setting overflow: visible !important; } &.in { overflow-y: visible; } // Undo the collapse side padding for navbars with containers to ensure // alignment of right-aligned contents. .navbar-fixed-top &, .navbar-static-top &, .navbar-fixed-bottom & { padding-right: 0; padding-left: 0; } } } .navbar-fixed-top, .navbar-fixed-bottom { .navbar-collapse { max-height: @navbar-collapse-max-height; @media (max-device-width: @screen-xs-min) and (orientation: landscape) { max-height: 200px; } } // Fix the top/bottom navbars when screen real estate supports it position: fixed; right: 0; left: 0; z-index: @zindex-navbar-fixed; // Undo the rounded corners @media (min-width: @grid-float-breakpoint) { border-radius: 0; } } .navbar-fixed-top { top: 0; border-width: 0 0 1px; } .navbar-fixed-bottom { bottom: 0; margin-bottom: 0; // override .navbar defaults border-width: 1px 0 0; } // Both navbar header and collapse // // When a container is present, change the behavior of the header and collapse. .container, .container-fluid { > .navbar-header, > .navbar-collapse { margin-right: -@navbar-padding-horizontal; margin-left: -@navbar-padding-horizontal; @media (min-width: @grid-float-breakpoint) { margin-right: 0; margin-left: 0; } } } // // Navbar alignment options // // Display the navbar across the entirety of the page or fixed it to the top or // bottom of the page. // Static top (unfixed, but 100% wide) navbar .navbar-static-top { z-index: @zindex-navbar; border-width: 0 0 1px; @media (min-width: @grid-float-breakpoint) { border-radius: 0; } } // Brand/project name .navbar-brand { float: left; height: @navbar-height; padding: @navbar-padding-vertical @navbar-padding-horizontal; font-size: @font-size-large; line-height: @line-height-computed; &:hover, &:focus { text-decoration: none; } > img { display: block; } @media (min-width: @grid-float-breakpoint) { .navbar > .container &, .navbar > .container-fluid & { margin-left: -@navbar-padding-horizontal; } } } // Navbar toggle // // Custom button for toggling the `.navbar-collapse`, powered by the collapse // JavaScript plugin. .navbar-toggle { position: relative; float: right; padding: 9px 10px; margin-right: @navbar-padding-horizontal; .navbar-vertical-align(34px); background-color: transparent; background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 border: 1px solid transparent; border-radius: @border-radius-base; // We remove the `outline` here, but later compensate by attaching `:hover` // styles to `:focus`. &:focus { outline: 0; } // Bars .icon-bar { display: block; width: 22px; height: 2px; border-radius: 1px; } .icon-bar + .icon-bar { margin-top: 4px; } @media (min-width: @grid-float-breakpoint) { display: none; } } // Navbar nav links // // Builds on top of the `.nav` components with its own modifier class to make // the nav the full height of the horizontal nav (above 768px). .navbar-nav { margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal; > li > a { padding-top: 10px; padding-bottom: 10px; line-height: @line-height-computed; } @media (max-width: @grid-float-breakpoint-max) { // Dropdowns get custom display when collapsed .open .dropdown-menu { position: static; float: none; width: auto; margin-top: 0; background-color: transparent; border: 0; box-shadow: none; > li > a, .dropdown-header { padding: 5px 15px 5px 25px; } > li > a { line-height: @line-height-computed; &:hover, &:focus { background-image: none; } } } } // Uncollapse the nav @media (min-width: @grid-float-breakpoint) { float: left; margin: 0; > li { float: left; > a { padding-top: @navbar-padding-vertical; padding-bottom: @navbar-padding-vertical; } } } } // Navbar form // // Extension of the `.form-inline` with some extra flavor for optimum display in // our navbars. .navbar-form { padding: 10px @navbar-padding-horizontal; margin-right: -@navbar-padding-horizontal; margin-left: -@navbar-padding-horizontal; border-top: 1px solid transparent; border-bottom: 1px solid transparent; @shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); .box-shadow(@shadow); // Mixin behavior for optimum display .form-inline(); .form-group { @media (max-width: @grid-float-breakpoint-max) { margin-bottom: 5px; &:last-child { margin-bottom: 0; } } } // Vertically center in expanded, horizontal navbar .navbar-vertical-align(@input-height-base); // Undo 100% width for pull classes @media (min-width: @grid-float-breakpoint) { width: auto; padding-top: 0; padding-bottom: 0; margin-right: 0; margin-left: 0; border: 0; .box-shadow(none); } } // Dropdown menus // Menu position and menu carets .navbar-nav > li > .dropdown-menu { margin-top: 0; .border-top-radius(0); } // Menu position and menu caret support for dropups via extra dropup class .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { margin-bottom: 0; .border-top-radius(@navbar-border-radius); .border-bottom-radius(0); } // Buttons in navbars // // Vertically center a button within a navbar (when *not* in a form). .navbar-btn { .navbar-vertical-align(@input-height-base); &.btn-sm { .navbar-vertical-align(@input-height-small); } &.btn-xs { .navbar-vertical-align(22); } } // Text in navbars // // Add a class to make any element properly align itself vertically within the navbars. .navbar-text { .navbar-vertical-align(@line-height-computed); @media (min-width: @grid-float-breakpoint) { float: left; margin-right: @navbar-padding-horizontal; margin-left: @navbar-padding-horizontal; } } // Component alignment // // Repurpose the pull utilities as their own navbar utilities to avoid specificity // issues with parents and chaining. Only do this when the navbar is uncollapsed // though so that navbar contents properly stack and align in mobile. // // Declared after the navbar components to ensure more specificity on the margins. @media (min-width: @grid-float-breakpoint) { .navbar-left { .pull-left(); } .navbar-right { .pull-right(); margin-right: -@navbar-padding-horizontal; ~ .navbar-right { margin-right: 0; } } } // Alternate navbars // -------------------------------------------------- // Default navbar .navbar-default { background-color: @navbar-default-bg; border-color: @navbar-default-border; .navbar-brand { color: @navbar-default-brand-color; &:hover, &:focus { color: @navbar-default-brand-hover-color; background-color: @navbar-default-brand-hover-bg; } } .navbar-text { color: @navbar-default-color; } .navbar-nav { > li > a { color: @navbar-default-link-color; &:hover, &:focus { color: @navbar-default-link-hover-color; background-color: @navbar-default-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: @navbar-default-link-active-color; background-color: @navbar-default-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: @navbar-default-link-disabled-color; background-color: @navbar-default-link-disabled-bg; } } // Dropdown menu items // Remove background color from open dropdown > .open > a { &, &:hover, &:focus { color: @navbar-default-link-active-color; background-color: @navbar-default-link-active-bg; } } @media (max-width: @grid-float-breakpoint-max) { // Dropdowns get custom display when collapsed .open .dropdown-menu { > li > a { color: @navbar-default-link-color; &:hover, &:focus { color: @navbar-default-link-hover-color; background-color: @navbar-default-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: @navbar-default-link-active-color; background-color: @navbar-default-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: @navbar-default-link-disabled-color; background-color: @navbar-default-link-disabled-bg; } } } } } .navbar-toggle { border-color: @navbar-default-toggle-border-color; &:hover, &:focus { background-color: @navbar-default-toggle-hover-bg; } .icon-bar { background-color: @navbar-default-toggle-icon-bar-bg; } } .navbar-collapse, .navbar-form { border-color: @navbar-default-border; } // Links in navbars // // Add a class to ensure links outside the navbar nav are colored correctly. .navbar-link { color: @navbar-default-link-color; &:hover { color: @navbar-default-link-hover-color; } } .btn-link { color: @navbar-default-link-color; &:hover, &:focus { color: @navbar-default-link-hover-color; } &[disabled], fieldset[disabled] & { &:hover, &:focus { color: @navbar-default-link-disabled-color; } } } } // Inverse navbar .navbar-inverse { background-color: @navbar-inverse-bg; border-color: @navbar-inverse-border; .navbar-brand { color: @navbar-inverse-brand-color; &:hover, &:focus { color: @navbar-inverse-brand-hover-color; background-color: @navbar-inverse-brand-hover-bg; } } .navbar-text { color: @navbar-inverse-color; } .navbar-nav { > li > a { color: @navbar-inverse-link-color; &:hover, &:focus { color: @navbar-inverse-link-hover-color; background-color: @navbar-inverse-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: @navbar-inverse-link-active-color; background-color: @navbar-inverse-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: @navbar-inverse-link-disabled-color; background-color: @navbar-inverse-link-disabled-bg; } } // Dropdowns > .open > a { &, &:hover, &:focus { color: @navbar-inverse-link-active-color; background-color: @navbar-inverse-link-active-bg; } } @media (max-width: @grid-float-breakpoint-max) { // Dropdowns get custom display .open .dropdown-menu { > .dropdown-header { border-color: @navbar-inverse-border; } .divider { background-color: @navbar-inverse-border; } > li > a { color: @navbar-inverse-link-color; &:hover, &:focus { color: @navbar-inverse-link-hover-color; background-color: @navbar-inverse-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: @navbar-inverse-link-active-color; background-color: @navbar-inverse-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: @navbar-inverse-link-disabled-color; background-color: @navbar-inverse-link-disabled-bg; } } } } } // Darken the responsive nav toggle .navbar-toggle { border-color: @navbar-inverse-toggle-border-color; &:hover, &:focus { background-color: @navbar-inverse-toggle-hover-bg; } .icon-bar { background-color: @navbar-inverse-toggle-icon-bar-bg; } } .navbar-collapse, .navbar-form { border-color: darken(@navbar-inverse-bg, 7%); } .navbar-link { color: @navbar-inverse-link-color; &:hover { color: @navbar-inverse-link-hover-color; } } .btn-link { color: @navbar-inverse-link-color; &:hover, &:focus { color: @navbar-inverse-link-hover-color; } &[disabled], fieldset[disabled] & { &:hover, &:focus { color: @navbar-inverse-link-disabled-color; } } } } bootstrap.less 0000604 00000002415 15245540247 0007457 0 ustar 00 /*! * Bootstrap v3.4.1 (https://getbootstrap.com/) * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ // Core variables and mixins @import "variables.less"; @import "mixins.less"; // Reset and dependencies @import "normalize.less"; @import "print.less"; @import "glyphicons.less"; // Core CSS @import "scaffolding.less"; @import "type.less"; @import "code.less"; @import "grid.less"; @import "tables.less"; @import "forms.less"; @import "buttons.less"; // Components @import "component-animations.less"; @import "dropdowns.less"; @import "button-groups.less"; @import "input-groups.less"; @import "navs.less"; @import "navbar.less"; @import "breadcrumbs.less"; @import "pagination.less"; @import "pager.less"; @import "labels.less"; @import "badges.less"; @import "jumbotron.less"; @import "thumbnails.less"; @import "alerts.less"; @import "progress-bars.less"; @import "media.less"; @import "list-group.less"; @import "panels.less"; @import "responsive-embed.less"; @import "wells.less"; @import "close.less"; // Components w/ JavaScript @import "modals.less"; @import "tooltip.less"; @import "popovers.less"; @import "carousel.less"; // Utility classes @import "utilities.less"; @import "responsive-utilities.less"; popovers.less 0000604 00000006606 15245540247 0007325 0 ustar 00 // // Popovers // -------------------------------------------------- .popover { position: absolute; top: 0; left: 0; z-index: @zindex-popover; display: none; max-width: @popover-max-width; padding: 1px; // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element. // So reset our font and text properties to avoid inheriting weird values. .reset-text(); font-size: @font-size-base; background-color: @popover-bg; background-clip: padding-box; border: 1px solid @popover-fallback-border-color; border: 1px solid @popover-border-color; border-radius: @border-radius-large; .box-shadow(0 5px 10px rgba(0, 0, 0, .2)); // Offset the popover to account for the popover arrow &.top { margin-top: -@popover-arrow-width; } &.right { margin-left: @popover-arrow-width; } &.bottom { margin-top: @popover-arrow-width; } &.left { margin-left: -@popover-arrow-width; } // Arrows // .arrow is outer, .arrow:after is inner > .arrow { border-width: @popover-arrow-outer-width; &, &:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; border-style: solid; } &:after { content: ""; border-width: @popover-arrow-width; } } &.top > .arrow { bottom: -@popover-arrow-outer-width; left: 50%; margin-left: -@popover-arrow-outer-width; border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-top-color: @popover-arrow-outer-color; border-bottom-width: 0; &:after { bottom: 1px; margin-left: -@popover-arrow-width; content: " "; border-top-color: @popover-arrow-color; border-bottom-width: 0; } } &.right > .arrow { top: 50%; left: -@popover-arrow-outer-width; margin-top: -@popover-arrow-outer-width; border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-right-color: @popover-arrow-outer-color; border-left-width: 0; &:after { bottom: -@popover-arrow-width; left: 1px; content: " "; border-right-color: @popover-arrow-color; border-left-width: 0; } } &.bottom > .arrow { top: -@popover-arrow-outer-width; left: 50%; margin-left: -@popover-arrow-outer-width; border-top-width: 0; border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-bottom-color: @popover-arrow-outer-color; &:after { top: 1px; margin-left: -@popover-arrow-width; content: " "; border-top-width: 0; border-bottom-color: @popover-arrow-color; } } &.left > .arrow { top: 50%; right: -@popover-arrow-outer-width; margin-top: -@popover-arrow-outer-width; border-right-width: 0; border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-left-color: @popover-arrow-outer-color; &:after { right: 1px; bottom: -@popover-arrow-width; content: " "; border-right-width: 0; border-left-color: @popover-arrow-color; } } } .popover-title { padding: 8px 14px; margin: 0; // reset heading margin font-size: @font-size-base; background-color: @popover-title-bg; border-bottom: 1px solid darken(@popover-title-bg, 5%); border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0; } .popover-content { padding: 9px 14px; } reset.less 0000604 00000010151 15245540247 0006560 0 ustar 00 // // Reset CSS // Adapted from http://github.com/necolas/normalize.css // -------------------------------------------------- // Display in IE6-9 and FF3 // ------------------------- article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } // Display block in IE6-9 and FF3 // ------------------------- audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } // Prevents modern browsers from displaying 'audio' without controls // ------------------------- audio:not([controls]) { display: none; } // Base settings // ------------------------- html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } // Focus states a:focus { .tab-focus(); } // Hover & Active a:hover, a:active { outline: 0; } // Prevents sub and sup affecting line-height in all browsers // ------------------------- sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } // Img border in a's and image quality // ------------------------- img { /* Responsive images (ensure images don't scale beyond their parents) */ max-width: 100%; /* Part 1: Set a maxium relative to the parent */ width: auto\9; /* IE7-8 need help adjusting responsive images */ height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */ vertical-align: middle; border: 0; -ms-interpolation-mode: bicubic; } // Prevent max-width from affecting Google Maps #map_canvas img, .google-maps img { max-width: none; } // Forms // ------------------------- // Font size in all browsers, margin changes, misc consistency button, input, select, textarea { margin: 0; font-size: 100%; vertical-align: middle; } button, input { *overflow: visible; // Inner spacing ie IE6/7 line-height: normal; // FF3/4 have !important on line-height in UA stylesheet } button::-moz-focus-inner, input::-moz-focus-inner { // Inner padding and border oddities in FF3/4 padding: 0; border: 0; } button, html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. input[type="reset"], input[type="submit"] { -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS. cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. } label, select, button, input[type="button"], input[type="reset"], input[type="submit"], input[type="radio"], input[type="checkbox"] { cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. } input[type="search"] { // Appearance in Safari/Chrome .box-sizing(content-box); -webkit-appearance: textfield; } input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5 } textarea { overflow: auto; // Remove vertical scrollbar in IE6-9 vertical-align: top; // Readability and alignment cross-browser } // Printing // ------------------------- // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css @media print { * { text-shadow: none !important; color: #000 !important; // Black prints faster: h5bp.com/s background: transparent !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } // Don't show links for images, or javascript/internal links .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; // h5bp.com/t } 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; } } responsive-navbar.less 0000604 00000010735 15245540247 0011112 0 ustar 00 // // Responsive: Navbar // -------------------------------------------------- // TABLETS AND BELOW // ----------------- @media (max-width: @navbarCollapseWidth) { // UNFIX THE TOPBAR // ---------------- // Remove any padding from the body body { padding-top: 0; } // Unfix the navbars .navbar-fixed-top, .navbar-fixed-bottom { position: static; } .navbar-fixed-top { margin-bottom: @baseLineHeight; } .navbar-fixed-bottom { margin-top: @baseLineHeight; } .navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { padding: 5px; } .navbar .container { width: auto; padding: 0; } // Account for brand name .navbar .brand { padding-left: 10px; padding-right: 10px; margin: 0 0 0 -5px; } // COLLAPSIBLE NAVBAR // ------------------ // Nav collapse clears brand .nav-collapse { clear: both; } // Block-level the nav .nav-collapse .nav { float: none; margin: 0 0 (@baseLineHeight / 2); } .nav-collapse .nav > li { float: none; } .nav-collapse .nav > li > a { margin-bottom: 2px; } .nav-collapse .nav > .divider-vertical { display: none; } .nav-collapse .nav .nav-header { color: @navbarText; text-shadow: none; } // Nav and dropdown links in navbar .nav-collapse .nav > li > a, .nav-collapse .dropdown-menu a { padding: 9px 15px; font-weight: bold; color: @navbarLinkColor; .border-radius(3px); } // Buttons .nav-collapse .btn { padding: 4px 10px 4px; font-weight: normal; .border-radius(@baseBorderRadius); } .nav-collapse .dropdown-menu li + li a { margin-bottom: 2px; } .nav-collapse .nav > li > a:hover, .nav-collapse .nav > li > a:focus, .nav-collapse .dropdown-menu a:hover, .nav-collapse .dropdown-menu a:focus { background-color: @navbarBackground; } .navbar-inverse .nav-collapse .nav > li > a, .navbar-inverse .nav-collapse .dropdown-menu a { color: @navbarInverseLinkColor; } .navbar-inverse .nav-collapse .nav > li > a:hover, .navbar-inverse .nav-collapse .nav > li > a:focus, .navbar-inverse .nav-collapse .dropdown-menu a:hover, .navbar-inverse .nav-collapse .dropdown-menu a:focus { background-color: @navbarInverseBackground; } // Buttons in the navbar .nav-collapse.in .btn-group { margin-top: 5px; padding: 0; } // Dropdowns in the navbar .nav-collapse .dropdown-menu { position: static; top: auto; left: auto; float: none; display: none; max-width: none; margin: 0 15px; padding: 0; background-color: transparent; border: none; .border-radius(0); .box-shadow(none); } .nav-collapse .open > .dropdown-menu { display: block; } .nav-collapse .dropdown-menu:before, .nav-collapse .dropdown-menu:after { display: none; } .nav-collapse .dropdown-menu .divider { display: none; } .nav-collapse .nav > li > .dropdown-menu { &:before, &:after { display: none; } } // Forms in navbar .nav-collapse .navbar-form, .nav-collapse .navbar-search { float: none; padding: (@baseLineHeight / 2) 15px; margin: (@baseLineHeight / 2) 0; border-top: 1px solid @navbarBackground; border-bottom: 1px solid @navbarBackground; .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)"); } .navbar-inverse .nav-collapse .navbar-form, .navbar-inverse .nav-collapse .navbar-search { border-top-color: @navbarInverseBackground; border-bottom-color: @navbarInverseBackground; } // Pull right (secondary) nav content .navbar .nav-collapse .nav.pull-right { float: none; margin-left: 0; } // Hide everything in the navbar save .brand and toggle button */ .nav-collapse, .nav-collapse.collapse { overflow: hidden; height: 0; } // Navbar button .navbar .btn-navbar { display: block; } // STATIC NAVBAR // ------------- .navbar-static .navbar-inner { padding-left: 10px; padding-right: 10px; } // T3 Added: Fixed Bootstrap Navigation bugs on responsive // ------------------------------------------------------- .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: auto; } } // DEFAULT DESKTOP // --------------- @media (min-width: @navbarCollapseDesktopWidth) { // Required to make the collapsing navbar work on regular desktops .nav-collapse.collapse { height: auto !important; overflow: visible !important; } } grid.less 0000604 00000002751 15245540247 0006372 0 ustar 00 // // Grid system // -------------------------------------------------- // Container widths // // Set the container width, and override it for fixed navbars in media queries. .container { .container-fixed(); @media (min-width: @screen-sm-min) { width: @container-sm; } @media (min-width: @screen-md-min) { width: @container-md; } @media (min-width: @screen-lg-min) { width: @container-lg; } } // Fluid container // // Utilizes the mixin meant for fixed width containers, but without any defined // width for fluid, full width layouts. .container-fluid { .container-fixed(); } // Row // // Rows contain and clear the floats of your columns. .row { .make-row(); } .row-no-gutters { margin-right: 0; margin-left: 0; [class*="col-"] { padding-right: 0; padding-left: 0; } } // Columns // // Common styles for small and large grid columns .make-grid-columns(); // Extra small grid // // Columns, offsets, pushes, and pulls for extra small devices like // smartphones. .make-grid(xs); // Small grid // // Columns, offsets, pushes, and pulls for the small device range, from phones // to tablets. @media (min-width: @screen-sm-min) { .make-grid(sm); } // Medium grid // // Columns, offsets, pushes, and pulls for the desktop device range. @media (min-width: @screen-md-min) { .make-grid(md); } // Large grid // // Columns, offsets, pushes, and pulls for the large desktop device range. @media (min-width: @screen-lg-min) { .make-grid(lg); } accordion.less 0000604 00000001174 15245540247 0007404 0 ustar 00 // // Accordion // -------------------------------------------------- // Parent container .accordion { margin-bottom: @baseLineHeight; } // Group == heading + body .accordion-group { margin-bottom: 2px; border: 1px solid #e5e5e5; .border-radius(@baseBorderRadius); } .accordion-heading { border-bottom: 0; } .accordion-heading .accordion-toggle { display: block; padding: 8px 15px; } // General toggle styles .accordion-toggle { cursor: pointer; } // Inner needs the styles because you can't animate properly with any styles on the element .accordion-inner { padding: 9px 15px; border-top: 1px solid #e5e5e5; } responsive-768px-979px.less 0000604 00000000717 15245540247 0011432 0 ustar 00 // // Responsive: Tablet to desktop // -------------------------------------------------- @media (min-width: 768px) and (max-width: 979px) { // Fixed grid #grid > .core(@gridColumnWidth768, @gridGutterWidth768); // Fluid grid #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); // Input grid #grid > .input(@gridColumnWidth768, @gridGutterWidth768); // No need to reset .thumbnails here since it's the same @gridGutterWidth } dropdowns.less 0000604 00000011342 15245540247 0007460 0 ustar 00 // // Dropdown menus // -------------------------------------------------- // Dropdown arrow/caret .caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: @caret-width-base dashed; border-top: @caret-width-base solid ~"\9"; // IE8 border-right: @caret-width-base solid transparent; border-left: @caret-width-base solid transparent; } // The dropdown wrapper (div) .dropup, .dropdown { position: relative; } // Prevent the focus on the dropdown toggle when closing dropdowns .dropdown-toggle:focus { outline: 0; } // The dropdown menu (ul) .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: @zindex-dropdown; display: none; // none by default, but block on "open" of the menu float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; // override default ul font-size: @font-size-base; text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) list-style: none; background-color: @dropdown-bg; background-clip: padding-box; border: 1px solid @dropdown-fallback-border; // IE8 fallback border: 1px solid @dropdown-border; border-radius: @border-radius-base; .box-shadow(0 6px 12px rgba(0, 0, 0, .175)); // Aligns the dropdown menu to right // // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` &.pull-right { right: 0; left: auto; } // Dividers (basically an hr) within the dropdown .divider { .nav-divider(@dropdown-divider-bg); } // Links within the dropdown menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: 400; line-height: @line-height-base; color: @dropdown-link-color; white-space: nowrap; // prevent links from randomly breaking onto new lines &:hover, &:focus { color: @dropdown-link-hover-color; text-decoration: none; background-color: @dropdown-link-hover-bg; } } } // Active state .dropdown-menu > .active > a { &, &:hover, &:focus { color: @dropdown-link-active-color; text-decoration: none; background-color: @dropdown-link-active-bg; outline: 0; } } // Disabled state // // Gray out text and ensure the hover/focus state remains gray .dropdown-menu > .disabled > a { &, &:hover, &:focus { color: @dropdown-link-disabled-color; } // Nuke hover/focus effects &:hover, &:focus { text-decoration: none; cursor: @cursor-disabled; background-color: transparent; background-image: none; // Remove CSS gradient .reset-filter(); } } // Open state for the dropdown .open { // Show the menu > .dropdown-menu { display: block; } // Remove the outline when :focus is triggered > a { outline: 0; } } // Menu positioning // // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown // menu with the parent. .dropdown-menu-right { right: 0; left: auto; // Reset the default from `.dropdown-menu` } // With v3, we enabled auto-flipping if you have a dropdown within a right // aligned nav component. To enable the undoing of that, we provide an override // to restore the default dropdown menu alignment. // // This is only for left-aligning a dropdown menu within a `.navbar-right` or // `.pull-right` nav component. .dropdown-menu-left { right: auto; left: 0; } // Dropdown section headers .dropdown-header { display: block; padding: 3px 20px; font-size: @font-size-small; line-height: @line-height-base; color: @dropdown-header-color; white-space: nowrap; // as with > li > a } // Backdrop to catch body clicks on mobile, etc. .dropdown-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: (@zindex-dropdown - 10); } // Right aligned dropdowns .pull-right > .dropdown-menu { right: 0; left: auto; } // Allow for dropdowns to go bottom up (aka, dropup-menu) // // Just add .dropup after the standard .dropdown class and you're set, bro. // TODO: abstract this so that the navbar fixed styles are not placed here? .dropup, .navbar-fixed-bottom .dropdown { // Reverse the caret .caret { content: ""; border-top: 0; border-bottom: @caret-width-base dashed; border-bottom: @caret-width-base solid ~"\9"; // IE8 } // Different positioning for bottom up menu .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 2px; } } // Component alignment // // Reiterate per navbar.less and the modified component alignment there. @media (min-width: @grid-float-breakpoint) { .navbar-right { .dropdown-menu { .dropdown-menu-right(); } // Necessary for overrides of the default right aligned menu. // Will remove come v4 in all likelihood. .dropdown-menu-left { .dropdown-menu-left(); } } } close.less 0000604 00000001502 15245540247 0006543 0 ustar 00 // stylelint-disable property-no-vendor-prefix // // Close icons // -------------------------------------------------- .close { float: right; font-size: (@font-size-base * 1.5); font-weight: @close-font-weight; line-height: 1; color: @close-color; text-shadow: @close-text-shadow; .opacity(.2); &:hover, &:focus { color: @close-color; text-decoration: none; cursor: pointer; .opacity(.5); } // Additional properties for button version // iOS requires the button element instead of an anchor tag. // If you want the anchor version, it requires `href="#"`. // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile button& { padding: 0; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; appearance: none; } } pagination.less 0000604 00000003771 15245540247 0007601 0 ustar 00 // // Pagination (multiple pages) // -------------------------------------------------- .pagination { display: inline-block; padding-left: 0; margin: @line-height-computed 0; border-radius: @border-radius-base; > li { display: inline; // Remove list-style and block-level defaults > a, > span { position: relative; float: left; // Collapse white-space padding: @padding-base-vertical @padding-base-horizontal; margin-left: -1px; line-height: @line-height-base; color: @pagination-color; text-decoration: none; background-color: @pagination-bg; border: 1px solid @pagination-border; &:hover, &:focus { z-index: 2; color: @pagination-hover-color; background-color: @pagination-hover-bg; border-color: @pagination-hover-border; } } &:first-child { > a, > span { margin-left: 0; .border-left-radius(@border-radius-base); } } &:last-child { > a, > span { .border-right-radius(@border-radius-base); } } } > .active > a, > .active > span { &, &:hover, &:focus { z-index: 3; color: @pagination-active-color; cursor: default; background-color: @pagination-active-bg; border-color: @pagination-active-border; } } > .disabled { > span, > span:hover, > span:focus, > a, > a:hover, > a:focus { color: @pagination-disabled-color; cursor: @cursor-disabled; background-color: @pagination-disabled-bg; border-color: @pagination-disabled-border; } } } // Sizing // -------------------------------------------------- // Large .pagination-lg { .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); } // Small .pagination-sm { .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); } media.less 0000604 00000001604 15245540247 0006520 0 ustar 00 .media { // Proper spacing between instances of .media margin-top: 15px; &:first-child { margin-top: 0; } } .media, .media-body { overflow: hidden; zoom: 1; } .media-body { width: 10000px; } .media-object { display: block; // Fix collapse in webkit from max-width: 100% and display: table-cell. &.img-thumbnail { max-width: none; } } .media-right, .media > .pull-right { padding-left: 10px; } .media-left, .media > .pull-left { padding-right: 10px; } .media-left, .media-right, .media-body { display: table-cell; vertical-align: top; } .media-middle { vertical-align: middle; } .media-bottom { vertical-align: bottom; } // Reset margins on headings for tighter default spacing .media-heading { margin-top: 0; margin-bottom: 5px; } // Media list variation // // Undo default ul/ol styles .media-list { padding-left: 0; list-style: none; } responsive-767px-max.less 0000604 00000007520 15245540247 0011315 0 ustar 00 // // Responsive: Landscape phone to desktop/tablet // -------------------------------------------------- @media (max-width: 767px) { // Padding to set content in a bit body { padding-left: 20px; padding-right: 20px; } // Negative indent the now static "fixed" navbar .navbar-fixed-top, .navbar-fixed-bottom, .navbar-static-top { margin-left: -20px; margin-right: -20px; } // Remove padding on container given explicit padding set on body .container-fluid { padding: 0; } // TYPOGRAPHY // ---------- // Reset horizontal dl .dl-horizontal { dt { float: none; clear: none; width: auto; text-align: left; } dd { margin-left: 0; } } // GRID & CONTAINERS // ----------------- // Remove width from containers .container { width: auto; } // Fluid rows .row-fluid { width: 100%; } // Undo negative margin on rows and thumbnails .row, .thumbnails { margin-left: 0; } .thumbnails > li { float: none; margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present } // Make all grid-sized elements block level again [class*="span"], .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing .row-fluid [class*="span"] { float: none; display: block; width: 100%; margin-left: 0; .box-sizing(border-box); } .span12, .row-fluid .span12 { width: 100%; .box-sizing(border-box); } .row-fluid [class*="offset"]:first-child { margin-left: 0; } // FORM FIELDS // ----------- // Make span* classes full width .input-large, .input-xlarge, .input-xxlarge, input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input { .input-block-level(); } // But don't let it screw up prepend/append inputs .input-prepend input, .input-append input, .input-prepend input[class*="span"], .input-append input[class*="span"] { display: inline-block; // redeclare so they don't wrap to new lines width: auto; } .controls-row [class*="span"] + [class*="span"] { margin-left: 0; } // Modals .modal { position: fixed; top: 20px; left: 20px; right: 20px; width: auto; margin: 0; &.fade { top: -100px; } &.fade.in { top: 20px; } } } // UP TO LANDSCAPE PHONE // --------------------- @media (max-width: 480px) { // Smooth out the collapsing/expanding nav .nav-collapse { -webkit-transform: translate3d(0, 0, 0); // activate the GPU } // Block level the page header small tag for readability .page-header h1 small { display: block; line-height: @baseLineHeight; } // Update checkboxes for iOS input[type="checkbox"], input[type="radio"] { border: 1px solid #ccc; } // Remove the horizontal form styles .form-horizontal { .control-label { float: none; width: auto; padding-top: 0; text-align: left; } // Move over all input controls and content .controls { margin-left: 0; } // Move the options list down to align with labels .control-list { padding-top: 0; // has to be padding because margin collaspes } // Move over buttons in .form-actions to align with .controls .form-actions { padding-left: 10px; padding-right: 10px; } } // Medias // Reset float and spacing to stack .media .pull-left, .media .pull-right { float: none; display: block; margin-bottom: 10px; } // Remove side margins since we stack instead of indent .media-object { margin-right: 0; margin-left: 0; } // Modals .modal { top: 10px; left: 10px; right: 10px; } .modal-header .close { padding: 10px; margin: -10px; } // Carousel .carousel-caption { position: static; } } progress-bars.less 0000604 00000003672 15245540247 0010241 0 ustar 00 // stylelint-disable at-rule-no-vendor-prefix // // Progress bars // -------------------------------------------------- // Bar animations // ------------------------- // WebKit @-webkit-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } // Spec and IE10+ @keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } // Bar itself // ------------------------- // Outer container .progress { height: @line-height-computed; margin-bottom: @line-height-computed; overflow: hidden; background-color: @progress-bg; border-radius: @progress-border-radius; .box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1)); } // Bar of progress .progress-bar { float: left; width: 0%; height: 100%; font-size: @font-size-small; line-height: @line-height-computed; color: @progress-bar-color; text-align: center; background-color: @progress-bar-bg; .box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15)); .transition(width .6s ease); } // Striped bars // // `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the // `.progress-bar-striped` class, which you just add to an existing // `.progress-bar`. .progress-striped .progress-bar, .progress-bar-striped { #gradient > .striped(); background-size: 40px 40px; } // Call animation for the active one // // `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the // `.progress-bar.active` approach. .progress.active .progress-bar, .progress-bar.active { .animation(progress-bar-stripes 2s linear infinite); } // Variations // ------------------------- .progress-bar-success { .progress-bar-variant(@progress-bar-success-bg); } .progress-bar-info { .progress-bar-variant(@progress-bar-info-bg); } .progress-bar-warning { .progress-bar-variant(@progress-bar-warning-bg); } .progress-bar-danger { .progress-bar-variant(@progress-bar-danger-bg); } modals.joomla.less 0000604 00000003133 15245540247 0010177 0 ustar 00 // // Modals // -------------------------------------------------- /* Joomla JUI NOTE: Original .modal definition has to be commented */ // > Joomla JUI // Base modal div.modal { position: fixed; top: 5%; left: 50%; z-index: @zindexModal; width: 80%; margin-left: -40%; background-color: @white; border: 1px solid #999; border: 1px solid rgba(0,0,0,.3); *border: 1px solid #999; /* IE6-7 */ .border-radius(6px); .box-shadow(0 3px 7px rgba(0,0,0,0.3)); .background-clip(padding-box); // Remove focus outline from opened modal outline: none; &.fade { .transition(e('opacity .3s linear, top .3s ease-out')); top: -25%; } &.fade.in { top: 5%; } } //Modal for Batch views .modal-batch { overflow-y: visible; } // Modal viewport dimensions .modal-body[class^="jviewport-height"], .modal-body[class*="jviewport-height"] { max-height: none; } .jviewport-height { &10 { height: 10vh; } &20 { height: 20vh; } &30 { height: 30vh; } &40 { height: 40vh; } &50 { height: 50vh; } &60 { height: 60vh; } &70 { height: 70vh; } &80 { height: 80vh; } &90 { height: 90vh; } &100 { height: 100vh; } } div.modal.jviewport-width { &10 { width: 10vw; margin-left: -5vw; } &20 { width: 20vw; margin-left: -10vw; } &30 { width: 30vw; margin-left: -15vw; } &40 { width: 40vw; margin-left: -20vw; } &50 { width: 50vw; margin-left: -25vw; } &60 { width: 60vw; margin-left: -30vw; } &70 { width: 70vw; margin-left: -35vw; } &80 { width: 80vw; margin-left: -40vw; } &90 { width: 90vw; margin-left: -45vw; } &100 { width: 100vw; margin-left: -50vw; } } // < Joomla JUI utilities.less 0000604 00000001432 15245540247 0007453 0 ustar 00 // stylelint-disable declaration-no-important // // Utility classes // -------------------------------------------------- // Floats // ------------------------- .clearfix { .clearfix(); } .center-block { .center-block(); } .pull-right { float: right !important; } .pull-left { float: left !important; } // Toggling content // ------------------------- // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 .hide { display: none !important; } .show { display: block !important; } .invisible { visibility: hidden; } .text-hide { .text-hide(); } // Hide from screenreaders and browsers // // Credit: HTML5 Boilerplate .hidden { display: none !important; } // For Affix plugin // ------------------------- .affix { position: fixed; } component-animations.less 0000604 00000001315 15245540247 0011602 0 ustar 00 // stylelint-disable selector-no-qualifying-type // // Component animations // -------------------------------------------------- // Heads up! // // We don't use the `.opacity()` mixin here since it causes a bug with text // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. .fade { opacity: 0; .transition(opacity .15s linear); &.in { opacity: 1; } } .collapse { display: none; &.in { display: block; } tr&.in { display: table-row; } tbody&.in { display: table-row-group; } } .collapsing { position: relative; height: 0; overflow: hidden; .transition-property(~"height, visibility"); .transition-duration(.35s); .transition-timing-function(ease); } layouts.less 0000604 00000000511 15245540247 0007135 0 ustar 00 // // Layouts // -------------------------------------------------- // Container (centered, fixed-width layouts) .container { .container-fixed(); } // Fluid layouts (left aligned, with sidebar, min- & max-width content) .container-fluid { padding-right: @gridGutterWidth; padding-left: @gridGutterWidth; .clearfix(); } hero-unit.less 0000604 00000001011 15245540247 0007343 0 ustar 00 // // Hero unit // -------------------------------------------------- .hero-unit { padding: 60px; margin-bottom: 30px; font-size: 18px; font-weight: 200; line-height: @baseLineHeight * 1.5; color: @heroUnitLeadColor; background-color: @heroUnitBackground; .border-radius(6px); h1 { margin-bottom: 0; font-size: 60px; line-height: 1; color: @heroUnitHeadingColor; letter-spacing: -1px; } li { line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less } } scaffolding.less 0000604 00000005672 15245540247 0007731 0 ustar 00 // // Scaffolding // -------------------------------------------------- // Reset the box-sizing // // Heads up! This reset may cause conflicts with some third-party widgets. // For recommendations on resolving such conflicts, see // https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing * { .box-sizing(border-box); } *:before, *:after { .box-sizing(border-box); } // Body reset html { font-size: 10px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { font-family: @font-family-base; font-size: @font-size-base; line-height: @line-height-base; color: @text-color; background-color: @body-bg; } // Reset fonts for relevant elements input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; } // Links a { color: @link-color; text-decoration: none; &:hover, &:focus { color: @link-hover-color; text-decoration: @link-hover-decoration; } &:focus { .tab-focus(); } } // Figures // // We reset this here because previously Normalize had no `figure` margins. This // ensures we don't break anyone's use of the element. figure { margin: 0; } // Images img { vertical-align: middle; } // Responsive images (ensure images don't scale beyond their parents) .img-responsive { .img-responsive(); } // Rounded corners .img-rounded { border-radius: @border-radius-large; } // Image thumbnails // // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. .img-thumbnail { padding: @thumbnail-padding; line-height: @line-height-base; background-color: @thumbnail-bg; border: 1px solid @thumbnail-border; border-radius: @thumbnail-border-radius; .transition(all .2s ease-in-out); // Keep them at most 100% wide .img-responsive(inline-block); } // Perfect circle .img-circle { border-radius: 50%; // set radius in percents } // Horizontal rules hr { margin-top: @line-height-computed; margin-bottom: @line-height-computed; border: 0; border-top: 1px solid @hr-border; } // Only display content to screen readers // // See: https://a11yproject.com/posts/how-to-hide-content .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } // Use in conjunction with .sr-only to only display content when it's focused. // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 // Credit: HTML5 Boilerplate .sr-only-focusable { &:active, &:focus { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; } } // iOS "clickable elements" fix for role="button" // // Fixes "clickability" issue (and more generally, the firing of events such as focus as well) // for traditionally non-focusable elements with role="button" // see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile [role="button"] { cursor: pointer; } less.php 0000604 00000200323 15245540352 0006224 0 ustar 00 <?php /** * @package FrameworkOnFramework * @subpackage less * @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Protect from unauthorized access defined('F0F_INCLUDED') or die; /** * This class is taken near verbatim (changes marked with **F0F** comment markers) from: * * lessphp v0.3.9 * http://leafo.net/lessphp * * LESS css compiler, adapted from http://lesscss.org * * Copyright 2012, Leaf Corcoran <leafot@gmail.com> * Licensed under MIT or GPLv3, see LICENSE * * THIS IS THIRD PARTY CODE. Code comments are mostly useless placeholders to * stop phpcs from complaining... * * @package FrameworkOnFramework * @since 2.0 */ class F0FLess { public static $VERSION = "v0.3.9"; protected static $TRUE = array("keyword", "true"); protected static $FALSE = array("keyword", "false"); protected $libFunctions = array(); protected $registeredVars = array(); protected $preserveComments = false; /** * Prefix of abstract properties * * @var string */ public $vPrefix = '@'; /** * Prefix of abstract blocks * * @var string */ public $mPrefix = '$'; public $parentSelector = '&'; public $importDisabled = false; public $importDir = ''; protected $numberPrecision = null; /** * Set to the parser that generated the current line when compiling * so we know how to create error messages * * @var F0FLessParser */ protected $sourceParser = null; protected $sourceLoc = null; public static $defaultValue = array("keyword", ""); /** * Uniquely identify imports * * @var integer */ protected static $nextImportId = 0; /** * Attempts to find the path of an import url, returns null for css files * * @param string $url The URL of the import * * @return string|null */ protected function findImport($url) { foreach ((array) $this->importDir as $dir) { $full = $dir . (substr($dir, -1) != '/' ? '/' : '') . $url; if ($this->fileExists($file = $full . '.less') || $this->fileExists($file = $full)) { return $file; } } return null; } /** * Does file $name exists? It's a simple proxy to JFile for now * * @param string $name The file we check for existence * * @return boolean */ protected function fileExists($name) { /** F0F - BEGIN CHANGE * */ return F0FPlatform::getInstance()->getIntegrationObject('filesystem')->fileExists($name); /** F0F - END CHANGE * */ } /** * Compresslist * * @param array $items Items * @param string $delim Delimiter * * @return array */ public static function compressList($items, $delim) { if (!isset($items[1]) && isset($items[0])) { return $items[0]; } else { return array('list', $delim, $items); } } /** * Quote for regular expression * * @param string $what What to quote * * @return string Quoted string */ public static function preg_quote($what) { return preg_quote($what, '/'); } /** * Try import * * @param string $importPath Import path * @param stdObject $parentBlock Parent block * @param string $out Out * * @return boolean */ protected function tryImport($importPath, $parentBlock, $out) { if ($importPath[0] == "function" && $importPath[1] == "url") { $importPath = $this->flattenList($importPath[2]); } $str = $this->coerceString($importPath); if ($str === null) { return false; } $url = $this->compileValue($this->lib_e($str)); // Don't import if it ends in css if (substr_compare($url, '.css', -4, 4) === 0) { return false; } $realPath = $this->findImport($url); if ($realPath === null) { return false; } if ($this->importDisabled) { return array(false, "/* import disabled */"); } $this->addParsedFile($realPath); $parser = $this->makeParser($realPath); $root = $parser->parse(file_get_contents($realPath)); // Set the parents of all the block props foreach ($root->props as $prop) { if ($prop[0] == "block") { $prop[1]->parent = $parentBlock; } } /** * Copy mixins into scope, set their parents, bring blocks from import * into current block * TODO: need to mark the source parser these came from this file */ foreach ($root->children as $childName => $child) { if (isset($parentBlock->children[$childName])) { $parentBlock->children[$childName] = array_merge( $parentBlock->children[$childName], $child ); } else { $parentBlock->children[$childName] = $child; } } $pi = pathinfo($realPath); $dir = $pi["dirname"]; list($top, $bottom) = $this->sortProps($root->props, true); $this->compileImportedProps($top, $parentBlock, $out, $parser, $dir); return array(true, $bottom, $parser, $dir); } /** * Compile Imported Props * * @param array $props Props * @param stdClass $block Block * @param string $out Out * @param F0FLessParser $sourceParser Source parser * @param string $importDir Import dir * * @return void */ protected function compileImportedProps($props, $block, $out, $sourceParser, $importDir) { $oldSourceParser = $this->sourceParser; $oldImport = $this->importDir; // TODO: this is because the importDir api is stupid $this->importDir = (array) $this->importDir; array_unshift($this->importDir, $importDir); foreach ($props as $prop) { $this->compileProp($prop, $block, $out); } $this->importDir = $oldImport; $this->sourceParser = $oldSourceParser; } /** * Recursively compiles a block. * * A block is analogous to a CSS block in most cases. A single LESS document * is encapsulated in a block when parsed, but it does not have parent tags * so all of it's children appear on the root level when compiled. * * Blocks are made up of props and children. * * Props are property instructions, array tuples which describe an action * to be taken, eg. write a property, set a variable, mixin a block. * * The children of a block are just all the blocks that are defined within. * This is used to look up mixins when performing a mixin. * * Compiling the block involves pushing a fresh environment on the stack, * and iterating through the props, compiling each one. * * @param stdClass $block Block * * @see F0FLess::compileProp() * * @return void */ protected function compileBlock($block) { switch ($block->type) { case "root": $this->compileRoot($block); break; case null: $this->compileCSSBlock($block); break; case "media": $this->compileMedia($block); break; case "directive": $name = "@" . $block->name; if (!empty($block->value)) { $name .= " " . $this->compileValue($this->reduce($block->value)); } $this->compileNestedBlock($block, array($name)); break; default: $this->throwError("unknown block type: $block->type\n"); } } /** * Compile CSS block * * @param stdClass $block Block to compile * * @return void */ protected function compileCSSBlock($block) { $env = $this->pushEnv(); $selectors = $this->compileSelectors($block->tags); $env->selectors = $this->multiplySelectors($selectors); $out = $this->makeOutputBlock(null, $env->selectors); $this->scope->children[] = $out; $this->compileProps($block, $out); // Mixins carry scope with them! $block->scope = $env; $this->popEnv(); } /** * Compile media * * @param stdClass $media Media * * @return void */ protected function compileMedia($media) { $env = $this->pushEnv($media); $parentScope = $this->mediaParent($this->scope); $query = $this->compileMediaQuery($this->multiplyMedia($env)); $this->scope = $this->makeOutputBlock($media->type, array($query)); $parentScope->children[] = $this->scope; $this->compileProps($media, $this->scope); if (count($this->scope->lines) > 0) { $orphanSelelectors = $this->findClosestSelectors(); if (!is_null($orphanSelelectors)) { $orphan = $this->makeOutputBlock(null, $orphanSelelectors); $orphan->lines = $this->scope->lines; array_unshift($this->scope->children, $orphan); $this->scope->lines = array(); } } $this->scope = $this->scope->parent; $this->popEnv(); } /** * Media parent * * @param stdClass $scope Scope * * @return stdClass */ protected function mediaParent($scope) { while (!empty($scope->parent)) { if (!empty($scope->type) && $scope->type != "media") { break; } $scope = $scope->parent; } return $scope; } /** * Compile nested block * * @param stdClass $block Block * @param array $selectors Selectors * * @return void */ protected function compileNestedBlock($block, $selectors) { $this->pushEnv($block); $this->scope = $this->makeOutputBlock($block->type, $selectors); $this->scope->parent->children[] = $this->scope; $this->compileProps($block, $this->scope); $this->scope = $this->scope->parent; $this->popEnv(); } /** * Compile root * * @param stdClass $root Root * * @return void */ protected function compileRoot($root) { $this->pushEnv(); $this->scope = $this->makeOutputBlock($root->type); $this->compileProps($root, $this->scope); $this->popEnv(); } /** * Compile props * * @param type $block Something * @param type $out Something * * @return void */ protected function compileProps($block, $out) { foreach ($this->sortProps($block->props) as $prop) { $this->compileProp($prop, $block, $out); } } /** * Sort props * * @param type $props X * @param type $split X * * @return type */ protected function sortProps($props, $split = false) { $vars = array(); $imports = array(); $other = array(); foreach ($props as $prop) { switch ($prop[0]) { case "assign": if (isset($prop[1][0]) && $prop[1][0] == $this->vPrefix) { $vars[] = $prop; } else { $other[] = $prop; } break; case "import": $id = self::$nextImportId++; $prop[] = $id; $imports[] = $prop; $other[] = array("import_mixin", $id); break; default: $other[] = $prop; } } if ($split) { return array(array_merge($vars, $imports), $other); } else { return array_merge($vars, $imports, $other); } } /** * Compile media query * * @param type $queries Queries * * @return string */ protected function compileMediaQuery($queries) { $compiledQueries = array(); foreach ($queries as $query) { $parts = array(); foreach ($query as $q) { switch ($q[0]) { case "mediaType": $parts[] = implode(" ", array_slice($q, 1)); break; case "mediaExp": if (isset($q[2])) { $parts[] = "($q[1]: " . $this->compileValue($this->reduce($q[2])) . ")"; } else { $parts[] = "($q[1])"; } break; case "variable": $parts[] = $this->compileValue($this->reduce($q)); break; } } if (count($parts) > 0) { $compiledQueries[] = implode(" and ", $parts); } } $out = "@media"; if (!empty($parts)) { $out .= " " . implode($this->formatter->selectorSeparator, $compiledQueries); } return $out; } /** * Multiply media * * @param type $env X * @param type $childQueries X * * @return type */ protected function multiplyMedia($env, $childQueries = null) { if (is_null($env) || !empty($env->block->type) && $env->block->type != "media") { return $childQueries; } // Plain old block, skip if (empty($env->block->type)) { return $this->multiplyMedia($env->parent, $childQueries); } $out = array(); $queries = $env->block->queries; if (is_null($childQueries)) { $out = $queries; } else { foreach ($queries as $parent) { foreach ($childQueries as $child) { $out[] = array_merge($parent, $child); } } } return $this->multiplyMedia($env->parent, $out); } /** * Expand parent selectors * * @param type &$tag Tag * @param type $replace Replace * * @return type */ protected function expandParentSelectors(&$tag, $replace) { $parts = explode("$&$", $tag); $count = 0; foreach ($parts as &$part) { $part = str_replace($this->parentSelector, $replace, $part, $c); $count += $c; } $tag = implode($this->parentSelector, $parts); return $count; } /** * Find closest selectors * * @return array */ protected function findClosestSelectors() { $env = $this->env; $selectors = null; while ($env !== null) { if (isset($env->selectors)) { $selectors = $env->selectors; break; } $env = $env->parent; } return $selectors; } /** * Multiply $selectors against the nearest selectors in env * * @param array $selectors The selectors * * @return array */ protected function multiplySelectors($selectors) { // Find parent selectors $parentSelectors = $this->findClosestSelectors(); if (is_null($parentSelectors)) { // Kill parent reference in top level selector foreach ($selectors as &$s) { $this->expandParentSelectors($s, ""); } return $selectors; } $out = array(); foreach ($parentSelectors as $parent) { foreach ($selectors as $child) { $count = $this->expandParentSelectors($child, $parent); // Don't prepend the parent tag if & was used if ($count > 0) { $out[] = trim($child); } else { $out[] = trim($parent . ' ' . $child); } } } return $out; } /** * Reduces selector expressions * * @param array $selectors The selector expressions * * @return array */ protected function compileSelectors($selectors) { $out = array(); foreach ($selectors as $s) { if (is_array($s)) { list(, $value) = $s; $out[] = trim($this->compileValue($this->reduce($value))); } else { $out[] = $s; } } return $out; } /** * Equality check * * @param mixed $left Left operand * @param mixed $right Right operand * * @return boolean True if equal */ protected function eq($left, $right) { return $left == $right; } /** * Pattern match * * @param type $block X * @param type $callingArgs X * * @return boolean */ protected function patternMatch($block, $callingArgs) { /** * Match the guards if it has them * any one of the groups must have all its guards pass for a match */ if (!empty($block->guards)) { $groupPassed = false; foreach ($block->guards as $guardGroup) { foreach ($guardGroup as $guard) { $this->pushEnv(); $this->zipSetArgs($block->args, $callingArgs); $negate = false; if ($guard[0] == "negate") { $guard = $guard[1]; $negate = true; } $passed = $this->reduce($guard) == self::$TRUE; if ($negate) { $passed = !$passed; } $this->popEnv(); if ($passed) { $groupPassed = true; } else { $groupPassed = false; break; } } if ($groupPassed) { break; } } if (!$groupPassed) { return false; } } $numCalling = count($callingArgs); if (empty($block->args)) { return $block->isVararg || $numCalling == 0; } // No args $i = -1; // Try to match by arity or by argument literal foreach ($block->args as $i => $arg) { switch ($arg[0]) { case "lit": if (empty($callingArgs[$i]) || !$this->eq($arg[1], $callingArgs[$i])) { return false; } break; case "arg": // No arg and no default value if (!isset($callingArgs[$i]) && !isset($arg[2])) { return false; } break; case "rest": // Rest can be empty $i--; break 2; } } if ($block->isVararg) { // Not having enough is handled above return true; } else { $numMatched = $i + 1; // Greater than becuase default values always match return $numMatched >= $numCalling; } } /** * Pattern match all * * @param type $blocks X * @param type $callingArgs X * * @return type */ protected function patternMatchAll($blocks, $callingArgs) { $matches = null; foreach ($blocks as $block) { if ($this->patternMatch($block, $callingArgs)) { $matches[] = $block; } } return $matches; } /** * Attempt to find blocks matched by path and args * * @param array $searchIn Block to search in * @param string $path The path to search for * @param array $args Arguments * @param array $seen Your guess is as good as mine; that's third party code * * @return null */ protected function findBlocks($searchIn, $path, $args, $seen = array()) { if ($searchIn == null) { return null; } if (isset($seen[$searchIn->id])) { return null; } $seen[$searchIn->id] = true; $name = $path[0]; if (isset($searchIn->children[$name])) { $blocks = $searchIn->children[$name]; if (count($path) == 1) { $matches = $this->patternMatchAll($blocks, $args); if (!empty($matches)) { // This will return all blocks that match in the closest // scope that has any matching block, like lessjs return $matches; } } else { $matches = array(); foreach ($blocks as $subBlock) { $subMatches = $this->findBlocks($subBlock, array_slice($path, 1), $args, $seen); if (!is_null($subMatches)) { foreach ($subMatches as $sm) { $matches[] = $sm; } } } return count($matches) > 0 ? $matches : null; } } if ($searchIn->parent === $searchIn) { return null; } return $this->findBlocks($searchIn->parent, $path, $args, $seen); } /** * Sets all argument names in $args to either the default value * or the one passed in through $values * * @param array $args Arguments * @param array $values Values * * @return void */ protected function zipSetArgs($args, $values) { $i = 0; $assignedValues = array(); foreach ($args as $a) { if ($a[0] == "arg") { if ($i < count($values) && !is_null($values[$i])) { $value = $values[$i]; } elseif (isset($a[2])) { $value = $a[2]; } else { $value = null; } $value = $this->reduce($value); $this->set($a[1], $value); $assignedValues[] = $value; } $i++; } // Check for a rest $last = end($args); if ($last[0] == "rest") { $rest = array_slice($values, count($args) - 1); $this->set($last[1], $this->reduce(array("list", " ", $rest))); } $this->env->arguments = $assignedValues; } /** * Compile a prop and update $lines or $blocks appropriately * * @param array $prop Prop * @param stdClass $block Block * @param string $out Out * * @return void */ protected function compileProp($prop, $block, $out) { // Set error position context $this->sourceLoc = isset($prop[-1]) ? $prop[-1] : -1; switch ($prop[0]) { case 'assign': list(, $name, $value) = $prop; if ($name[0] == $this->vPrefix) { $this->set($name, $value); } else { $out->lines[] = $this->formatter->property($name, $this->compileValue($this->reduce($value))); } break; case 'block': list(, $child) = $prop; $this->compileBlock($child); break; case 'mixin': list(, $path, $args, $suffix) = $prop; $args = array_map(array($this, "reduce"), (array) $args); $mixins = $this->findBlocks($block, $path, $args); if ($mixins === null) { // Throw error here?? break; } foreach ($mixins as $mixin) { $haveScope = false; if (isset($mixin->parent->scope)) { $haveScope = true; $mixinParentEnv = $this->pushEnv(); $mixinParentEnv->storeParent = $mixin->parent->scope; } $haveArgs = false; if (isset($mixin->args)) { $haveArgs = true; $this->pushEnv(); $this->zipSetArgs($mixin->args, $args); } $oldParent = $mixin->parent; if ($mixin != $block) { $mixin->parent = $block; } foreach ($this->sortProps($mixin->props) as $subProp) { if ($suffix !== null && $subProp[0] == "assign" && is_string($subProp[1]) && $subProp[1]{0} != $this->vPrefix) { $subProp[2] = array( 'list', ' ', array($subProp[2], array('keyword', $suffix)) ); } $this->compileProp($subProp, $mixin, $out); } $mixin->parent = $oldParent; if ($haveArgs) { $this->popEnv(); } if ($haveScope) { $this->popEnv(); } } break; case 'raw': $out->lines[] = $prop[1]; break; case "directive": list(, $name, $value) = $prop; $out->lines[] = "@$name " . $this->compileValue($this->reduce($value)) . ';'; break; case "comment": $out->lines[] = $prop[1]; break; case "import"; list(, $importPath, $importId) = $prop; $importPath = $this->reduce($importPath); if (!isset($this->env->imports)) { $this->env->imports = array(); } $result = $this->tryImport($importPath, $block, $out); $this->env->imports[$importId] = $result === false ? array(false, "@import " . $this->compileValue($importPath) . ";") : $result; break; case "import_mixin": list(, $importId) = $prop; $import = $this->env->imports[$importId]; if ($import[0] === false) { $out->lines[] = $import[1]; } else { list(, $bottom, $parser, $importDir) = $import; $this->compileImportedProps($bottom, $block, $out, $parser, $importDir); } break; default: $this->throwError("unknown op: {$prop[0]}\n"); } } /** * Compiles a primitive value into a CSS property value. * * Values in lessphp are typed by being wrapped in arrays, their format is * typically: * * array(type, contents [, additional_contents]*) * * The input is expected to be reduced. This function will not work on * things like expressions and variables. * * @param array $value Value * * @return void */ protected function compileValue($value) { switch ($value[0]) { case 'list': // [1] - delimiter // [2] - array of values return implode($value[1], array_map(array($this, 'compileValue'), $value[2])); case 'raw_color': if (!empty($this->formatter->compressColors)) { return $this->compileValue($this->coerceColor($value)); } return $value[1]; case 'keyword': // [1] - the keyword return $value[1]; case 'number': // Format: [1] - the number -- [2] - the unit list(, $num, $unit) = $value; if ($this->numberPrecision !== null) { $num = round($num, $this->numberPrecision); } return $num . $unit; case 'string': // [1] - contents of string (includes quotes) list(, $delim, $content) = $value; foreach ($content as &$part) { if (is_array($part)) { $part = $this->compileValue($part); } } return $delim . implode($content) . $delim; case 'color': /** * Format: * * [1] - red component (either number or a %) * [2] - green component * [3] - blue component * [4] - optional alpha component */ list(, $r, $g, $b) = $value; $r = round($r); $g = round($g); $b = round($b); if (count($value) == 5 && $value[4] != 1) { // Return an rgba value return 'rgba(' . $r . ',' . $g . ',' . $b . ',' . $value[4] . ')'; } $h = sprintf("#%02x%02x%02x", $r, $g, $b); if (!empty($this->formatter->compressColors)) { // Converting hex color to short notation (e.g. #003399 to #039) if ($h[1] === $h[2] && $h[3] === $h[4] && $h[5] === $h[6]) { $h = '#' . $h[1] . $h[3] . $h[5]; } } return $h; case 'function': list(, $name, $args) = $value; return $name . '(' . $this->compileValue($args) . ')'; default: // Assumed to be unit $this->throwError("unknown value type: $value[0]"); } } /** * Lib is number * * @param type $value X * * @return boolean */ protected function lib_isnumber($value) { return $this->toBool($value[0] == "number"); } /** * Lib is string * * @param type $value X * * @return boolean */ protected function lib_isstring($value) { return $this->toBool($value[0] == "string"); } /** * Lib is color * * @param type $value X * * @return boolean */ protected function lib_iscolor($value) { return $this->toBool($this->coerceColor($value)); } /** * Lib is keyword * * @param type $value X * * @return boolean */ protected function lib_iskeyword($value) { return $this->toBool($value[0] == "keyword"); } /** * Lib is pixel * * @param type $value X * * @return boolean */ protected function lib_ispixel($value) { return $this->toBool($value[0] == "number" && $value[2] == "px"); } /** * Lib is percentage * * @param type $value X * * @return boolean */ protected function lib_ispercentage($value) { return $this->toBool($value[0] == "number" && $value[2] == "%"); } /** * Lib is em * * @param type $value X * * @return boolean */ protected function lib_isem($value) { return $this->toBool($value[0] == "number" && $value[2] == "em"); } /** * Lib is rem * * @param type $value X * * @return boolean */ protected function lib_isrem($value) { return $this->toBool($value[0] == "number" && $value[2] == "rem"); } /** * LIb rgba hex * * @param type $color X * * @return boolean */ protected function lib_rgbahex($color) { $color = $this->coerceColor($color); if (is_null($color)) { $this->throwError("color expected for rgbahex"); } return sprintf("#%02x%02x%02x%02x", isset($color[4]) ? $color[4] * 255 : 255, $color[1], $color[2], $color[3]); } /** * Lib argb * * @param type $color X * * @return type */ protected function lib_argb($color) { return $this->lib_rgbahex($color); } /** * Utility func to unquote a string * * @param string $arg Arg * * @return string */ protected function lib_e($arg) { switch ($arg[0]) { case "list": $items = $arg[2]; if (isset($items[0])) { return $this->lib_e($items[0]); } return self::$defaultValue; case "string": $arg[1] = ""; return $arg; case "keyword": return $arg; default: return array("keyword", $this->compileValue($arg)); } } /** * Lib sprintf * * @param type $args X * * @return type */ protected function lib__sprintf($args) { if ($args[0] != "list") { return $args; } $values = $args[2]; $string = array_shift($values); $template = $this->compileValue($this->lib_e($string)); $i = 0; if (preg_match_all('/%[dsa]/', $template, $m)) { foreach ($m[0] as $match) { $val = isset($values[$i]) ? $this->reduce($values[$i]) : array('keyword', ''); // Lessjs compat, renders fully expanded color, not raw color if ($color = $this->coerceColor($val)) { $val = $color; } $i++; $rep = $this->compileValue($this->lib_e($val)); $template = preg_replace('/' . self::preg_quote($match) . '/', $rep, $template, 1); } } $d = $string[0] == "string" ? $string[1] : '"'; return array("string", $d, array($template)); } /** * Lib floor * * @param type $arg X * * @return array */ protected function lib_floor($arg) { $value = $this->assertNumber($arg); return array("number", floor($value), $arg[2]); } /** * Lib ceil * * @param type $arg X * * @return array */ protected function lib_ceil($arg) { $value = $this->assertNumber($arg); return array("number", ceil($value), $arg[2]); } /** * Lib round * * @param type $arg X * * @return array */ protected function lib_round($arg) { $value = $this->assertNumber($arg); return array("number", round($value), $arg[2]); } /** * Lib unit * * @param type $arg X * * @return array */ protected function lib_unit($arg) { if ($arg[0] == "list") { list($number, $newUnit) = $arg[2]; return array("number", $this->assertNumber($number), $this->compileValue($this->lib_e($newUnit))); } else { return array("number", $this->assertNumber($arg), ""); } } /** * Helper function to get arguments for color manipulation functions. * takes a list that contains a color like thing and a percentage * * @param array $args Args * * @return array */ protected function colorArgs($args) { if ($args[0] != 'list' || count($args[2]) < 2) { return array(array('color', 0, 0, 0), 0); } list($color, $delta) = $args[2]; $color = $this->assertColor($color); $delta = floatval($delta[1]); return array($color, $delta); } /** * Lib darken * * @param type $args X * * @return type */ protected function lib_darken($args) { list($color, $delta) = $this->colorArgs($args); $hsl = $this->toHSL($color); $hsl[3] = $this->clamp($hsl[3] - $delta, 100); return $this->toRGB($hsl); } /** * Lib lighten * * @param type $args X * * @return type */ protected function lib_lighten($args) { list($color, $delta) = $this->colorArgs($args); $hsl = $this->toHSL($color); $hsl[3] = $this->clamp($hsl[3] + $delta, 100); return $this->toRGB($hsl); } /** * Lib saturate * * @param type $args X * * @return type */ protected function lib_saturate($args) { list($color, $delta) = $this->colorArgs($args); $hsl = $this->toHSL($color); $hsl[2] = $this->clamp($hsl[2] + $delta, 100); return $this->toRGB($hsl); } /** * Lib desaturate * * @param type $args X * * @return type */ protected function lib_desaturate($args) { list($color, $delta) = $this->colorArgs($args); $hsl = $this->toHSL($color); $hsl[2] = $this->clamp($hsl[2] - $delta, 100); return $this->toRGB($hsl); } /** * Lib spin * * @param type $args X * * @return type */ protected function lib_spin($args) { list($color, $delta) = $this->colorArgs($args); $hsl = $this->toHSL($color); $hsl[1] = $hsl[1] + $delta % 360; if ($hsl[1] < 0) { $hsl[1] += 360; } return $this->toRGB($hsl); } /** * Lib fadeout * * @param type $args X * * @return type */ protected function lib_fadeout($args) { list($color, $delta) = $this->colorArgs($args); $color[4] = $this->clamp((isset($color[4]) ? $color[4] : 1) - $delta / 100); return $color; } /** * Lib fadein * * @param type $args X * * @return type */ protected function lib_fadein($args) { list($color, $delta) = $this->colorArgs($args); $color[4] = $this->clamp((isset($color[4]) ? $color[4] : 1) + $delta / 100); return $color; } /** * Lib hue * * @param type $color X * * @return type */ protected function lib_hue($color) { $hsl = $this->toHSL($this->assertColor($color)); return round($hsl[1]); } /** * Lib saturation * * @param type $color X * * @return type */ protected function lib_saturation($color) { $hsl = $this->toHSL($this->assertColor($color)); return round($hsl[2]); } /** * Lib lightness * * @param type $color X * * @return type */ protected function lib_lightness($color) { $hsl = $this->toHSL($this->assertColor($color)); return round($hsl[3]); } /** * Get the alpha of a color * Defaults to 1 for non-colors or colors without an alpha * * @param string $value Value * * @return string */ protected function lib_alpha($value) { if (!is_null($color = $this->coerceColor($value))) { return isset($color[4]) ? $color[4] : 1; } } /** * Set the alpha of the color * * @param array $args Args * * @return string */ protected function lib_fade($args) { list($color, $alpha) = $this->colorArgs($args); $color[4] = $this->clamp($alpha / 100.0); return $color; } /** * Third party code; your guess is as good as mine * * @param array $arg Arg * * @return string */ protected function lib_percentage($arg) { $num = $this->assertNumber($arg); return array("number", $num * 100, "%"); } /** * mixes two colors by weight * mix(@color1, @color2, @weight); * http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#mix-instance_method * * @param array $args Args * * @return string */ protected function lib_mix($args) { if ($args[0] != "list" || count($args[2]) < 3) { $this->throwError("mix expects (color1, color2, weight)"); } list($first, $second, $weight) = $args[2]; $first = $this->assertColor($first); $second = $this->assertColor($second); $first_a = $this->lib_alpha($first); $second_a = $this->lib_alpha($second); $weight = $weight[1] / 100.0; $w = $weight * 2 - 1; $a = $first_a - $second_a; $w1 = (($w * $a == -1 ? $w : ($w + $a) / (1 + $w * $a)) + 1) / 2.0; $w2 = 1.0 - $w1; $new = array('color', $w1 * $first[1] + $w2 * $second[1], $w1 * $first[2] + $w2 * $second[2], $w1 * $first[3] + $w2 * $second[3], ); if ($first_a != 1.0 || $second_a != 1.0) { $new[] = $first_a * $weight + $second_a * ($weight - 1); } return $this->fixColor($new); } /** * Third party code; your guess is as good as mine * * @param array $arg Arg * * @return string */ protected function lib_contrast($args) { if ($args[0] != 'list' || count($args[2]) < 3) { return array(array('color', 0, 0, 0), 0); } list($inputColor, $darkColor, $lightColor) = $args[2]; $inputColor = $this->assertColor($inputColor); $darkColor = $this->assertColor($darkColor); $lightColor = $this->assertColor($lightColor); $hsl = $this->toHSL($inputColor); if ($hsl[3] > 50) { return $darkColor; } return $lightColor; } /** * Assert color * * @param type $value X * @param type $error X * * @return type */ protected function assertColor($value, $error = "expected color value") { $color = $this->coerceColor($value); if (is_null($color)) { $this->throwError($error); } return $color; } /** * Assert number * * @param type $value X * @param type $error X * * @return type */ protected function assertNumber($value, $error = "expecting number") { if ($value[0] == "number") { return $value[1]; } $this->throwError($error); } /** * To HSL * * @param type $color X * * @return type */ protected function toHSL($color) { if ($color[0] == 'hsl') { return $color; } $r = $color[1] / 255; $g = $color[2] / 255; $b = $color[3] / 255; $min = min($r, $g, $b); $max = max($r, $g, $b); $L = ($min + $max) / 2; if ($min == $max) { $S = $H = 0; } else { if ($L < 0.5) { $S = ($max - $min) / ($max + $min); } else { $S = ($max - $min) / (2.0 - $max - $min); } if ($r == $max) { $H = ($g - $b) / ($max - $min); } elseif ($g == $max) { $H = 2.0 + ($b - $r) / ($max - $min); } elseif ($b == $max) { $H = 4.0 + ($r - $g) / ($max - $min); } } $out = array('hsl', ($H < 0 ? $H + 6 : $H) * 60, $S * 100, $L * 100, ); if (count($color) > 4) { // Copy alpha $out[] = $color[4]; } return $out; } /** * To RGB helper * * @param type $comp X * @param type $temp1 X * @param type $temp2 X * * @return type */ protected function toRGB_helper($comp, $temp1, $temp2) { if ($comp < 0) { $comp += 1.0; } elseif ($comp > 1) { $comp -= 1.0; } if (6 * $comp < 1) { return $temp1 + ($temp2 - $temp1) * 6 * $comp; } if (2 * $comp < 1) { return $temp2; } if (3 * $comp < 2) { return $temp1 + ($temp2 - $temp1) * ((2 / 3) - $comp) * 6; } return $temp1; } /** * Converts a hsl array into a color value in rgb. * Expects H to be in range of 0 to 360, S and L in 0 to 100 * * @param type $color X * * @return type */ protected function toRGB($color) { if ($color == 'color') { return $color; } $H = $color[1] / 360; $S = $color[2] / 100; $L = $color[3] / 100; if ($S == 0) { $r = $g = $b = $L; } else { $temp2 = $L < 0.5 ? $L * (1.0 + $S) : $L + $S - $L * $S; $temp1 = 2.0 * $L - $temp2; $r = $this->toRGB_helper($H + 1 / 3, $temp1, $temp2); $g = $this->toRGB_helper($H, $temp1, $temp2); $b = $this->toRGB_helper($H - 1 / 3, $temp1, $temp2); } // $out = array('color', round($r*255), round($g*255), round($b*255)); $out = array('color', $r * 255, $g * 255, $b * 255); if (count($color) > 4) { // Copy alpha $out[] = $color[4]; } return $out; } /** * Clamp * * @param type $v X * @param type $max X * @param type $min X * * @return type */ protected function clamp($v, $max = 1, $min = 0) { return min($max, max($min, $v)); } /** * Convert the rgb, rgba, hsl color literals of function type * as returned by the parser into values of color type. * * @param type $func X * * @return type */ protected function funcToColor($func) { $fname = $func[1]; if ($func[2][0] != 'list') { // Need a list of arguments return false; } $rawComponents = $func[2][2]; if ($fname == 'hsl' || $fname == 'hsla') { $hsl = array('hsl'); $i = 0; foreach ($rawComponents as $c) { $val = $this->reduce($c); $val = isset($val[1]) ? floatval($val[1]) : 0; if ($i == 0) { $clamp = 360; } elseif ($i < 3) { $clamp = 100; } else { $clamp = 1; } $hsl[] = $this->clamp($val, $clamp); $i++; } while (count($hsl) < 4) { $hsl[] = 0; } return $this->toRGB($hsl); } elseif ($fname == 'rgb' || $fname == 'rgba') { $components = array(); $i = 1; foreach ($rawComponents as $c) { $c = $this->reduce($c); if ($i < 4) { if ($c[0] == "number" && $c[2] == "%") { $components[] = 255 * ($c[1] / 100); } else { $components[] = floatval($c[1]); } } elseif ($i == 4) { if ($c[0] == "number" && $c[2] == "%") { $components[] = 1.0 * ($c[1] / 100); } else { $components[] = floatval($c[1]); } } else { break; } $i++; } while (count($components) < 3) { $components[] = 0; } array_unshift($components, 'color'); return $this->fixColor($components); } return false; } /** * Reduce * * @param type $value X * @param type $forExpression X * * @return type */ protected function reduce($value, $forExpression = false) { switch ($value[0]) { case "interpolate": $reduced = $this->reduce($value[1]); $var = $this->compileValue($reduced); $res = $this->reduce(array("variable", $this->vPrefix . $var)); if (empty($value[2])) { $res = $this->lib_e($res); } return $res; case "variable": $key = $value[1]; if (is_array($key)) { $key = $this->reduce($key); $key = $this->vPrefix . $this->compileValue($this->lib_e($key)); } $seen = & $this->env->seenNames; if (!empty($seen[$key])) { $this->throwError("infinite loop detected: $key"); } $seen[$key] = true; $out = $this->reduce($this->get($key, self::$defaultValue)); $seen[$key] = false; return $out; case "list": foreach ($value[2] as &$item) { $item = $this->reduce($item, $forExpression); } return $value; case "expression": return $this->evaluate($value); case "string": foreach ($value[2] as &$part) { if (is_array($part)) { $strip = $part[0] == "variable"; $part = $this->reduce($part); if ($strip) { $part = $this->lib_e($part); } } } return $value; case "escape": list(, $inner) = $value; return $this->lib_e($this->reduce($inner)); case "function": $color = $this->funcToColor($value); if ($color) { return $color; } list(, $name, $args) = $value; if ($name == "%") { $name = "_sprintf"; } $f = isset($this->libFunctions[$name]) ? $this->libFunctions[$name] : array($this, 'lib_' . $name); if (is_callable($f)) { if ($args[0] == 'list') { $args = self::compressList($args[2], $args[1]); } $ret = call_user_func($f, $this->reduce($args, true), $this); if (is_null($ret)) { return array("string", "", array( $name, "(", $args, ")" )); } // Convert to a typed value if the result is a php primitive if (is_numeric($ret)) { $ret = array('number', $ret, ""); } elseif (!is_array($ret)) { $ret = array('keyword', $ret); } return $ret; } // Plain function, reduce args $value[2] = $this->reduce($value[2]); return $value; case "unary": list(, $op, $exp) = $value; $exp = $this->reduce($exp); if ($exp[0] == "number") { switch ($op) { case "+": return $exp; case "-": $exp[1] *= -1; return $exp; } } return array("string", "", array($op, $exp)); } if ($forExpression) { switch ($value[0]) { case "keyword": if ($color = $this->coerceColor($value)) { return $color; } break; case "raw_color": return $this->coerceColor($value); } } return $value; } /** * Coerce a value for use in color operation * * @param type $value X * * @return null */ protected function coerceColor($value) { switch ($value[0]) { case 'color': return $value; case 'raw_color': $c = array("color", 0, 0, 0); $colorStr = substr($value[1], 1); $num = hexdec($colorStr); $width = strlen($colorStr) == 3 ? 16 : 256; for ($i = 3; $i > 0; $i--) { // It's 3 2 1 $t = $num % $width; $num /= $width; $c[$i] = $t * (256 / $width) + $t * floor(16 / $width); } return $c; case 'keyword': $name = $value[1]; if (isset(self::$cssColors[$name])) { $rgba = explode(',', self::$cssColors[$name]); if (isset($rgba[3])) { return array('color', $rgba[0], $rgba[1], $rgba[2], $rgba[3]); } return array('color', $rgba[0], $rgba[1], $rgba[2]); } return null; } } /** * Make something string like into a string * * @param type $value X * * @return null */ protected function coerceString($value) { switch ($value[0]) { case "string": return $value; case "keyword": return array("string", "", array($value[1])); } return null; } /** * Turn list of length 1 into value type * * @param type $value X * * @return type */ protected function flattenList($value) { if ($value[0] == "list" && count($value[2]) == 1) { return $this->flattenList($value[2][0]); } return $value; } /** * To bool * * @param type $a X * * @return type */ protected function toBool($a) { if ($a) { return self::$TRUE; } else { return self::$FALSE; } } /** * Evaluate an expression * * @param type $exp X * * @return type */ protected function evaluate($exp) { list(, $op, $left, $right, $whiteBefore, $whiteAfter) = $exp; $left = $this->reduce($left, true); $right = $this->reduce($right, true); if ($leftColor = $this->coerceColor($left)) { $left = $leftColor; } if ($rightColor = $this->coerceColor($right)) { $right = $rightColor; } $ltype = $left[0]; $rtype = $right[0]; // Operators that work on all types if ($op == "and") { return $this->toBool($left == self::$TRUE && $right == self::$TRUE); } if ($op == "=") { return $this->toBool($this->eq($left, $right)); } if ($op == "+" && !is_null($str = $this->stringConcatenate($left, $right))) { return $str; } // Type based operators $fname = "op_${ltype}_${rtype}"; if (is_callable(array($this, $fname))) { $out = $this->$fname($op, $left, $right); if (!is_null($out)) { return $out; } } // Make the expression look it did before being parsed $paddedOp = $op; if ($whiteBefore) { $paddedOp = " " . $paddedOp; } if ($whiteAfter) { $paddedOp .= " "; } return array("string", "", array($left, $paddedOp, $right)); } /** * String concatenate * * @param type $left X * @param string $right X * * @return string */ protected function stringConcatenate($left, $right) { if ($strLeft = $this->coerceString($left)) { if ($right[0] == "string") { $right[1] = ""; } $strLeft[2][] = $right; return $strLeft; } if ($strRight = $this->coerceString($right)) { array_unshift($strRight[2], $left); return $strRight; } } /** * Make sure a color's components don't go out of bounds * * @param type $c X * * @return int */ protected function fixColor($c) { foreach (range(1, 3) as $i) { if ($c[$i] < 0) { $c[$i] = 0; } if ($c[$i] > 255) { $c[$i] = 255; } } return $c; } /** * Op number color * * @param type $op X * @param type $lft X * @param type $rgt X * * @return type */ protected function op_number_color($op, $lft, $rgt) { if ($op == '+' || $op == '*') { return $this->op_color_number($op, $rgt, $lft); } } /** * Op color number * * @param type $op X * @param type $lft X * @param int $rgt X * * @return type */ protected function op_color_number($op, $lft, $rgt) { if ($rgt[0] == '%') { $rgt[1] /= 100; } return $this->op_color_color($op, $lft, array_fill(1, count($lft) - 1, $rgt[1])); } /** * Op color color * * @param type $op X * @param type $left X * @param type $right X * * @return type */ protected function op_color_color($op, $left, $right) { $out = array('color'); $max = count($left) > count($right) ? count($left) : count($right); foreach (range(1, $max - 1) as $i) { $lval = isset($left[$i]) ? $left[$i] : 0; $rval = isset($right[$i]) ? $right[$i] : 0; switch ($op) { case '+': $out[] = $lval + $rval; break; case '-': $out[] = $lval - $rval; break; case '*': $out[] = $lval * $rval; break; case '%': $out[] = $lval % $rval; break; case '/': if ($rval == 0) { $this->throwError("evaluate error: can't divide by zero"); } $out[] = $lval / $rval; break; default: $this->throwError('evaluate error: color op number failed on op ' . $op); } } return $this->fixColor($out); } /** * Lib red * * @param type $color X * * @return type */ public function lib_red($color) { $color = $this->coerceColor($color); if (is_null($color)) { $this->throwError('color expected for red()'); } return $color[1]; } /** * Lib green * * @param type $color X * * @return type */ public function lib_green($color) { $color = $this->coerceColor($color); if (is_null($color)) { $this->throwError('color expected for green()'); } return $color[2]; } /** * Lib blue * * @param type $color X * * @return type */ public function lib_blue($color) { $color = $this->coerceColor($color); if (is_null($color)) { $this->throwError('color expected for blue()'); } return $color[3]; } /** * Operator on two numbers * * @param type $op X * @param type $left X * @param type $right X * * @return type */ protected function op_number_number($op, $left, $right) { $unit = empty($left[2]) ? $right[2] : $left[2]; $value = 0; switch ($op) { case '+': $value = $left[1] + $right[1]; break; case '*': $value = $left[1] * $right[1]; break; case '-': $value = $left[1] - $right[1]; break; case '%': $value = $left[1] % $right[1]; break; case '/': if ($right[1] == 0) { $this->throwError('parse error: divide by zero'); } $value = $left[1] / $right[1]; break; case '<': return $this->toBool($left[1] < $right[1]); case '>': return $this->toBool($left[1] > $right[1]); case '>=': return $this->toBool($left[1] >= $right[1]); case '=<': return $this->toBool($left[1] <= $right[1]); default: $this->throwError('parse error: unknown number operator: ' . $op); } return array("number", $value, $unit); } /** * Make output block * * @param type $type X * @param type $selectors X * * @return stdclass */ protected function makeOutputBlock($type, $selectors = null) { $b = new stdclass; $b->lines = array(); $b->children = array(); $b->selectors = $selectors; $b->type = $type; $b->parent = $this->scope; return $b; } /** * The state of execution * * @param type $block X * * @return stdclass */ protected function pushEnv($block = null) { $e = new stdclass; $e->parent = $this->env; $e->store = array(); $e->block = $block; $this->env = $e; return $e; } /** * Pop something off the stack * * @return type */ protected function popEnv() { $old = $this->env; $this->env = $this->env->parent; return $old; } /** * Set something in the current env * * @param type $name X * @param type $value X * * @return void */ protected function set($name, $value) { $this->env->store[$name] = $value; } /** * Get the highest occurrence entry for a name * * @param type $name X * @param type $default X * * @return type */ protected function get($name, $default = null) { $current = $this->env; $isArguments = $name == $this->vPrefix . 'arguments'; while ($current) { if ($isArguments && isset($current->arguments)) { return array('list', ' ', $current->arguments); } if (isset($current->store[$name])) { return $current->store[$name]; } else { $current = isset($current->storeParent) ? $current->storeParent : $current->parent; } } return $default; } /** * Inject array of unparsed strings into environment as variables * * @param type $args X * * @return void * * @throws Exception */ protected function injectVariables($args) { $this->pushEnv(); /** F0F -- BEGIN CHANGE * */ $parser = new F0FLessParser($this, __METHOD__); /** F0F -- END CHANGE * */ foreach ($args as $name => $strValue) { if ($name{0} != '@') { $name = '@' . $name; } $parser->count = 0; $parser->buffer = (string) $strValue; if (!$parser->propertyValue($value)) { throw new Exception("failed to parse passed in variable $name: $strValue"); } $this->set($name, $value); } } /** * Initialize any static state, can initialize parser for a file * * @param type $fname X */ public function __construct($fname = null) { if ($fname !== null) { // Used for deprecated parse method $this->_parseFile = $fname; } } /** * Compile * * @param type $string X * @param type $name X * * @return type */ public function compile($string, $name = null) { $locale = setlocale(LC_NUMERIC, 0); setlocale(LC_NUMERIC, "C"); $this->parser = $this->makeParser($name); $root = $this->parser->parse($string); $this->env = null; $this->scope = null; $this->formatter = $this->newFormatter(); if (!empty($this->registeredVars)) { $this->injectVariables($this->registeredVars); } // Used for error messages $this->sourceParser = $this->parser; $this->compileBlock($root); ob_start(); $this->formatter->block($this->scope); $out = ob_get_clean(); setlocale(LC_NUMERIC, $locale); return $out; } /** * Compile file * * @param type $fname X * @param type $outFname X * * @return type * * @throws Exception */ public function compileFile($fname, $outFname = null) { if (!is_readable($fname)) { throw new Exception('load error: failed to find ' . $fname); } $pi = pathinfo($fname); $oldImport = $this->importDir; $this->importDir = (array) $this->importDir; $this->importDir[] = $pi['dirname'] . '/'; $this->allParsedFiles = array(); $this->addParsedFile($fname); $out = $this->compile(file_get_contents($fname), $fname); $this->importDir = $oldImport; if ($outFname !== null) { /** F0F - BEGIN CHANGE * */ return F0FPlatform::getInstance()->getIntegrationObject('filesystem')->fileWrite($outFname, $out); /** F0F - END CHANGE * */ } return $out; } /** * Compile only if changed input has changed or output doesn't exist * * @param type $in X * @param type $out X * * @return boolean */ public function checkedCompile($in, $out) { if (!is_file($out) || filemtime($in) > filemtime($out)) { $this->compileFile($in, $out); return true; } return false; } /** * Execute lessphp on a .less file or a lessphp cache structure * * The lessphp cache structure contains information about a specific * less file having been parsed. It can be used as a hint for future * calls to determine whether or not a rebuild is required. * * The cache structure contains two important keys that may be used * externally: * * compiled: The final compiled CSS * updated: The time (in seconds) the CSS was last compiled * * The cache structure is a plain-ol' PHP associative array and can * be serialized and unserialized without a hitch. * * @param mixed $in Input * @param bool $force Force rebuild? * * @return array lessphp cache structure */ public function cachedCompile($in, $force = false) { // Assume no root $root = null; if (is_string($in)) { $root = $in; } elseif (is_array($in) and isset($in['root'])) { if ($force or !isset($in['files'])) { /** * If we are forcing a recompile or if for some reason the * structure does not contain any file information we should * specify the root to trigger a rebuild. */ $root = $in['root']; } elseif (isset($in['files']) and is_array($in['files'])) { foreach ($in['files'] as $fname => $ftime) { if (!file_exists($fname) or filemtime($fname) > $ftime) { /** * One of the files we knew about previously has changed * so we should look at our incoming root again. */ $root = $in['root']; break; } } } } else { /** * TODO: Throw an exception? We got neither a string nor something * that looks like a compatible lessphp cache structure. */ return null; } if ($root !== null) { // If we have a root value which means we should rebuild. $out = array(); $out['root'] = $root; $out['compiled'] = $this->compileFile($root); $out['files'] = $this->allParsedFiles(); $out['updated'] = time(); return $out; } else { // No changes, pass back the structure // we were given initially. return $in; } } // // This is deprecated /** * Parse and compile buffer * * @param null $str X * @param type $initialVariables X * * @return type * * @throws Exception * * @deprecated 2.0 */ public function parse($str = null, $initialVariables = null) { if (is_array($str)) { $initialVariables = $str; $str = null; } $oldVars = $this->registeredVars; if ($initialVariables !== null) { $this->setVariables($initialVariables); } if ($str == null) { if (empty($this->_parseFile)) { throw new exception("nothing to parse"); } $out = $this->compileFile($this->_parseFile); } else { $out = $this->compile($str); } $this->registeredVars = $oldVars; return $out; } /** * Make parser * * @param type $name X * * @return F0FLessParser */ protected function makeParser($name) { /** F0F -- BEGIN CHANGE * */ $parser = new F0FLessParser($this, $name); /** F0F -- END CHANGE * */ $parser->writeComments = $this->preserveComments; return $parser; } /** * Set Formatter * * @param type $name X * * @return void */ public function setFormatter($name) { $this->formatterName = $name; } /** * New formatter * * @return F0FLessFormatterLessjs */ protected function newFormatter() { /** F0F -- BEGIN CHANGE * */ $className = "F0FLessFormatterLessjs"; /** F0F -- END CHANGE * */ if (!empty($this->formatterName)) { if (!is_string($this->formatterName)) return $this->formatterName; /** F0F -- BEGIN CHANGE * */ $className = "F0FLessFormatter" . ucfirst($this->formatterName); /** F0F -- END CHANGE * */ } return new $className; } /** * Set preserve comments * * @param type $preserve X * * @return void */ public function setPreserveComments($preserve) { $this->preserveComments = $preserve; } /** * Register function * * @param type $name X * @param type $func X * * @return void */ public function registerFunction($name, $func) { $this->libFunctions[$name] = $func; } /** * Unregister function * * @param type $name X * * @return void */ public function unregisterFunction($name) { unset($this->libFunctions[$name]); } /** * Set variables * * @param type $variables X * * @return void */ public function setVariables($variables) { $this->registeredVars = array_merge($this->registeredVars, $variables); } /** * Unset variable * * @param type $name X * * @return void */ public function unsetVariable($name) { unset($this->registeredVars[$name]); } /** * Set import dir * * @param type $dirs X * * @return void */ public function setImportDir($dirs) { $this->importDir = (array) $dirs; } /** * Add import dir * * @param type $dir X * * @return void */ public function addImportDir($dir) { $this->importDir = (array) $this->importDir; $this->importDir[] = $dir; } /** * All parsed files * * @return type */ public function allParsedFiles() { return $this->allParsedFiles; } /** * Add parsed file * * @param type $file X * * @return void */ protected function addParsedFile($file) { $this->allParsedFiles[realpath($file)] = filemtime($file); } /** * Uses the current value of $this->count to show line and line number * * @param type $msg X * * @return void */ protected function throwError($msg = null) { if ($this->sourceLoc >= 0) { $this->sourceParser->throwError($msg, $this->sourceLoc); } throw new exception($msg); } /** * Compile file $in to file $out if $in is newer than $out * Returns true when it compiles, false otherwise * * @param type $in X * @param type $out X * @param self $less X * * @return type */ public static function ccompile($in, $out, $less = null) { if ($less === null) { $less = new self; } return $less->checkedCompile($in, $out); } /** * Compile execute * * @param type $in X * @param type $force X * @param self $less X * * @return type */ public static function cexecute($in, $force = false, $less = null) { if ($less === null) { $less = new self; } return $less->cachedCompile($in, $force); } protected static $cssColors = array( 'aliceblue' => '240,248,255', 'antiquewhite' => '250,235,215', 'aqua' => '0,255,255', 'aquamarine' => '127,255,212', 'azure' => '240,255,255', 'beige' => '245,245,220', 'bisque' => '255,228,196', 'black' => '0,0,0', 'blanchedalmond' => '255,235,205', 'blue' => '0,0,255', 'blueviolet' => '138,43,226', 'brown' => '165,42,42', 'burlywood' => '222,184,135', 'cadetblue' => '95,158,160', 'chartreuse' => '127,255,0', 'chocolate' => '210,105,30', 'coral' => '255,127,80', 'cornflowerblue' => '100,149,237', 'cornsilk' => '255,248,220', 'crimson' => '220,20,60', 'cyan' => '0,255,255', 'darkblue' => '0,0,139', 'darkcyan' => '0,139,139', 'darkgoldenrod' => '184,134,11', 'darkgray' => '169,169,169', 'darkgreen' => '0,100,0', 'darkgrey' => '169,169,169', 'darkkhaki' => '189,183,107', 'darkmagenta' => '139,0,139', 'darkolivegreen' => '85,107,47', 'darkorange' => '255,140,0', 'darkorchid' => '153,50,204', 'darkred' => '139,0,0', 'darksalmon' => '233,150,122', 'darkseagreen' => '143,188,143', 'darkslateblue' => '72,61,139', 'darkslategray' => '47,79,79', 'darkslategrey' => '47,79,79', 'darkturquoise' => '0,206,209', 'darkviolet' => '148,0,211', 'deeppink' => '255,20,147', 'deepskyblue' => '0,191,255', 'dimgray' => '105,105,105', 'dimgrey' => '105,105,105', 'dodgerblue' => '30,144,255', 'firebrick' => '178,34,34', 'floralwhite' => '255,250,240', 'forestgreen' => '34,139,34', 'fuchsia' => '255,0,255', 'gainsboro' => '220,220,220', 'ghostwhite' => '248,248,255', 'gold' => '255,215,0', 'goldenrod' => '218,165,32', 'gray' => '128,128,128', 'green' => '0,128,0', 'greenyellow' => '173,255,47', 'grey' => '128,128,128', 'honeydew' => '240,255,240', 'hotpink' => '255,105,180', 'indianred' => '205,92,92', 'indigo' => '75,0,130', 'ivory' => '255,255,240', 'khaki' => '240,230,140', 'lavender' => '230,230,250', 'lavenderblush' => '255,240,245', 'lawngreen' => '124,252,0', 'lemonchiffon' => '255,250,205', 'lightblue' => '173,216,230', 'lightcoral' => '240,128,128', 'lightcyan' => '224,255,255', 'lightgoldenrodyellow' => '250,250,210', 'lightgray' => '211,211,211', 'lightgreen' => '144,238,144', 'lightgrey' => '211,211,211', 'lightpink' => '255,182,193', 'lightsalmon' => '255,160,122', 'lightseagreen' => '32,178,170', 'lightskyblue' => '135,206,250', 'lightslategray' => '119,136,153', 'lightslategrey' => '119,136,153', 'lightsteelblue' => '176,196,222', 'lightyellow' => '255,255,224', 'lime' => '0,255,0', 'limegreen' => '50,205,50', 'linen' => '250,240,230', 'magenta' => '255,0,255', 'maroon' => '128,0,0', 'mediumaquamarine' => '102,205,170', 'mediumblue' => '0,0,205', 'mediumorchid' => '186,85,211', 'mediumpurple' => '147,112,219', 'mediumseagreen' => '60,179,113', 'mediumslateblue' => '123,104,238', 'mediumspringgreen' => '0,250,154', 'mediumturquoise' => '72,209,204', 'mediumvioletred' => '199,21,133', 'midnightblue' => '25,25,112', 'mintcream' => '245,255,250', 'mistyrose' => '255,228,225', 'moccasin' => '255,228,181', 'navajowhite' => '255,222,173', 'navy' => '0,0,128', 'oldlace' => '253,245,230', 'olive' => '128,128,0', 'olivedrab' => '107,142,35', 'orange' => '255,165,0', 'orangered' => '255,69,0', 'orchid' => '218,112,214', 'palegoldenrod' => '238,232,170', 'palegreen' => '152,251,152', 'paleturquoise' => '175,238,238', 'palevioletred' => '219,112,147', 'papayawhip' => '255,239,213', 'peachpuff' => '255,218,185', 'peru' => '205,133,63', 'pink' => '255,192,203', 'plum' => '221,160,221', 'powderblue' => '176,224,230', 'purple' => '128,0,128', 'red' => '255,0,0', 'rosybrown' => '188,143,143', 'royalblue' => '65,105,225', 'saddlebrown' => '139,69,19', 'salmon' => '250,128,114', 'sandybrown' => '244,164,96', 'seagreen' => '46,139,87', 'seashell' => '255,245,238', 'sienna' => '160,82,45', 'silver' => '192,192,192', 'skyblue' => '135,206,235', 'slateblue' => '106,90,205', 'slategray' => '112,128,144', 'slategrey' => '112,128,144', 'snow' => '255,250,250', 'springgreen' => '0,255,127', 'steelblue' => '70,130,180', 'tan' => '210,180,140', 'teal' => '0,128,128', 'thistle' => '216,191,216', 'tomato' => '255,99,71', 'transparent' => '0,0,0,0', 'turquoise' => '64,224,208', 'violet' => '238,130,238', 'wheat' => '245,222,179', 'white' => '255,255,255', 'whitesmoke' => '245,245,245', 'yellow' => '255,255,0', 'yellowgreen' => '154,205,50' ); } formatter/compressed.php 0000604 00000002064 15245540352 0011427 0 ustar 00 <?php /** * @package FrameworkOnFramework * @subpackage less * @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Protect from unauthorized access defined('F0F_INCLUDED') or die; /** * This class is taken verbatim from: * * lessphp v0.3.9 * http://leafo.net/lessphp * * LESS css compiler, adapted from http://lesscss.org * * Copyright 2012, Leaf Corcoran <leafot@gmail.com> * Licensed under MIT or GPLv3, see LICENSE * * @package FrameworkOnFramework * @since 2.0 */ class F0FLessFormatterCompressed extends F0FLessFormatterClassic { public $disableSingle = true; public $open = "{"; public $selectorSeparator = ","; public $assignSeparator = ":"; public $break = ""; public $compressColors = true; /** * Indent a string by $n positions * * @param integer $n How many positions to indent * * @return string The indented string */ public function indentStr($n = 0) { return ""; } } formatter/classic.php 0000604 00000006560 15245540352 0010711 0 ustar 00 <?php /** * @package FrameworkOnFramework * @subpackage less * @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Protect from unauthorized access defined('F0F_INCLUDED') or die; /** * This class is taken verbatim from: * * lessphp v0.3.9 * http://leafo.net/lessphp * * LESS css compiler, adapted from http://lesscss.org * * Copyright 2012, Leaf Corcoran <leafot@gmail.com> * Licensed under MIT or GPLv3, see LICENSE * * @package FrameworkOnFramework * @since 2.0 */ class F0FLessFormatterClassic { public $indentChar = " "; public $break = "\n"; public $open = " {"; public $close = "}"; public $selectorSeparator = ", "; public $assignSeparator = ":"; public $openSingle = " { "; public $closeSingle = " }"; public $disableSingle = false; public $breakSelectors = false; public $compressColors = false; /** * Public constructor */ public function __construct() { $this->indentLevel = 0; } /** * Indent a string by $n positions * * @param integer $n How many positions to indent * * @return string The indented string */ public function indentStr($n = 0) { return str_repeat($this->indentChar, max($this->indentLevel + $n, 0)); } /** * Return the code for a property * * @param string $name The name of the porperty * @param string $value The value of the porperty * * @return string The CSS code */ public function property($name, $value) { return $name . $this->assignSeparator . $value . ";"; } /** * Is a block empty? * * @param stdClass $block The block to check * * @return boolean True if the block has no lines or children */ protected function isEmpty($block) { if (empty($block->lines)) { foreach ($block->children as $child) { if (!$this->isEmpty($child)) { return false; } } return true; } return false; } /** * Output a CSS block * * @param stdClass $block The block definition to output * * @return void */ public function block($block) { if ($this->isEmpty($block)) { return; } $inner = $pre = $this->indentStr(); $isSingle = !$this->disableSingle && is_null($block->type) && count($block->lines) == 1; if (!empty($block->selectors)) { $this->indentLevel++; if ($this->breakSelectors) { $selectorSeparator = $this->selectorSeparator . $this->break . $pre; } else { $selectorSeparator = $this->selectorSeparator; } echo $pre . implode($selectorSeparator, $block->selectors); if ($isSingle) { echo $this->openSingle; $inner = ""; } else { echo $this->open . $this->break; $inner = $this->indentStr(); } } if (!empty($block->lines)) { $glue = $this->break . $inner; echo $inner . implode($glue, $block->lines); if (!$isSingle && !empty($block->children)) { echo $this->break; } } foreach ($block->children as $child) { $this->block($child); } if (!empty($block->selectors)) { if (!$isSingle && empty($block->children)) { echo $this->break; } if ($isSingle) { echo $this->closeSingle . $this->break; } else { echo $pre . $this->close . $this->break; } $this->indentLevel--; } } } formatter/lessjs.php 0000604 00000001470 15245540352 0010566 0 ustar 00 <?php /** * @package FrameworkOnFramework * @subpackage less * @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Protect from unauthorized access defined('F0F_INCLUDED') or die; /** * This class is taken verbatim from: * * lessphp v0.3.9 * http://leafo.net/lessphp * * LESS css compiler, adapted from http://lesscss.org * * Copyright 2012, Leaf Corcoran <leafot@gmail.com> * Licensed under MIT or GPLv3, see LICENSE * * @package FrameworkOnFramework * @since 2.0 */ class F0FLessFormatterLessjs extends F0FLessFormatterClassic { public $disableSingle = true; public $breakSelectors = true; public $assignSeparator = ": "; public $selectorSeparator = ","; } formatter/joomla.php 0000604 00000001525 15245540352 0010545 0 ustar 00 <?php /** * @package FrameworkOnFramework * @subpackage less * @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Protect from unauthorized access defined('F0F_INCLUDED') or die; /** * This class is taken verbatim from: * * lessphp v0.3.9 * http://leafo.net/lessphp * * LESS css compiler, adapted from http://lesscss.org * * Copyright 2012, Leaf Corcoran <leafot@gmail.com> * Licensed under MIT or GPLv3, see LICENSE * * @package FrameworkOnFramework * @since 2.1 */ class F0FLessFormatterJoomla extends F0FLessFormatterClassic { public $disableSingle = true; public $breakSelectors = true; public $assignSeparator = ": "; public $selectorSeparator = ","; public $indentChar = "\t"; } parser/parser.php 0000604 00000116057 15245540352 0010060 0 ustar 00 <?php /** * @package FrameworkOnFramework * @subpackage less * @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Protect from unauthorized access defined('F0F_INCLUDED') or die; /** * This class is taken verbatim from: * * lessphp v0.3.9 * http://leafo.net/lessphp * * LESS css compiler, adapted from http://lesscss.org * * Copyright 2012, Leaf Corcoran <leafot@gmail.com> * Licensed under MIT or GPLv3, see LICENSE * * Responsible for taking a string of LESS code and converting it into a syntax tree * * @since 2.0 */ class F0FLessParser { // Used to uniquely identify blocks protected static $nextBlockId = 0; protected static $precedence = array( '=<' => 0, '>=' => 0, '=' => 0, '<' => 0, '>' => 0, '+' => 1, '-' => 1, '*' => 2, '/' => 2, '%' => 2, ); protected static $whitePattern; protected static $commentMulti; protected static $commentSingle = "//"; protected static $commentMultiLeft = "/*"; protected static $commentMultiRight = "*/"; // Regex string to match any of the operators protected static $operatorString; // These properties will supress division unless it's inside parenthases protected static $supressDivisionProps = array('/border-radius$/i', '/^font$/i'); protected $blockDirectives = array("font-face", "keyframes", "page", "-moz-document"); protected $lineDirectives = array("charset"); /** * if we are in parens we can be more liberal with whitespace around * operators because it must evaluate to a single value and thus is less * ambiguous. * * Consider: * property1: 10 -5; // is two numbers, 10 and -5 * property2: (10 -5); // should evaluate to 5 */ protected $inParens = false; // Caches preg escaped literals protected static $literalCache = array(); /** * Constructor * * @param [type] $lessc [description] * @param string $sourceName [description] */ public function __construct($lessc, $sourceName = null) { $this->eatWhiteDefault = true; // Reference to less needed for vPrefix, mPrefix, and parentSelector $this->lessc = $lessc; // Name used for error messages $this->sourceName = $sourceName; $this->writeComments = false; if (!self::$operatorString) { self::$operatorString = '(' . implode('|', array_map(array('F0FLess', 'preg_quote'), array_keys(self::$precedence))) . ')'; $commentSingle = F0FLess::preg_quote(self::$commentSingle); $commentMultiLeft = F0FLess::preg_quote(self::$commentMultiLeft); $commentMultiRight = F0FLess::preg_quote(self::$commentMultiRight); self::$commentMulti = $commentMultiLeft . '.*?' . $commentMultiRight; self::$whitePattern = '/' . $commentSingle . '[^\n]*\s*|(' . self::$commentMulti . ')\s*|\s+/Ais'; } } /** * Parse text * * @param string $buffer [description] * * @return [type] [description] */ public function parse($buffer) { $this->count = 0; $this->line = 1; // Block stack $this->env = null; $this->buffer = $this->writeComments ? $buffer : $this->removeComments($buffer); $this->pushSpecialBlock("root"); $this->eatWhiteDefault = true; $this->seenComments = array(); /* * trim whitespace on head * if (preg_match('/^\s+/', $this->buffer, $m)) { * $this->line += substr_count($m[0], "\n"); * $this->buffer = ltrim($this->buffer); * } */ $this->whitespace(); // Parse the entire file $lastCount = $this->count; while (false !== $this->parseChunk()); if ($this->count != strlen($this->buffer)) { $this->throwError(); } // TODO report where the block was opened if (!is_null($this->env->parent)) { throw new exception('parse error: unclosed block'); } return $this->env; } /** * Parse a single chunk off the head of the buffer and append it to the * current parse environment. * Returns false when the buffer is empty, or when there is an error. * * This function is called repeatedly until the entire document is * parsed. * * This parser is most similar to a recursive descent parser. Single * functions represent discrete grammatical rules for the language, and * they are able to capture the text that represents those rules. * * Consider the function lessc::keyword(). (all parse functions are * structured the same) * * The function takes a single reference argument. When calling the * function it will attempt to match a keyword on the head of the buffer. * If it is successful, it will place the keyword in the referenced * argument, advance the position in the buffer, and return true. If it * fails then it won't advance the buffer and it will return false. * * All of these parse functions are powered by lessc::match(), which behaves * the same way, but takes a literal regular expression. Sometimes it is * more convenient to use match instead of creating a new function. * * Because of the format of the functions, to parse an entire string of * grammatical rules, you can chain them together using &&. * * But, if some of the rules in the chain succeed before one fails, then * the buffer position will be left at an invalid state. In order to * avoid this, lessc::seek() is used to remember and set buffer positions. * * Before parsing a chain, use $s = $this->seek() to remember the current * position into $s. Then if a chain fails, use $this->seek($s) to * go back where we started. * * @return boolean */ protected function parseChunk() { if (empty($this->buffer)) { return false; } $s = $this->seek(); // Setting a property if ($this->keyword($key) && $this->assign() && $this->propertyValue($value, $key) && $this->end()) { $this->append(array('assign', $key, $value), $s); return true; } else { $this->seek($s); } // Look for special css blocks if ($this->literal('@', false)) { $this->count--; // Media if ($this->literal('@media')) { if (($this->mediaQueryList($mediaQueries) || true) && $this->literal('{')) { $media = $this->pushSpecialBlock("media"); $media->queries = is_null($mediaQueries) ? array() : $mediaQueries; return true; } else { $this->seek($s); return false; } } if ($this->literal("@", false) && $this->keyword($dirName)) { if ($this->isDirective($dirName, $this->blockDirectives)) { if (($this->openString("{", $dirValue, null, array(";")) || true) && $this->literal("{")) { $dir = $this->pushSpecialBlock("directive"); $dir->name = $dirName; if (isset($dirValue)) { $dir->value = $dirValue; } return true; } } elseif ($this->isDirective($dirName, $this->lineDirectives)) { if ($this->propertyValue($dirValue) && $this->end()) { $this->append(array("directive", $dirName, $dirValue)); return true; } } } $this->seek($s); } // Setting a variable if ($this->variable($var) && $this->assign() && $this->propertyValue($value) && $this->end()) { $this->append(array('assign', $var, $value), $s); return true; } else { $this->seek($s); } if ($this->import($importValue)) { $this->append($importValue, $s); return true; } // Opening parametric mixin if ($this->tag($tag, true) && $this->argumentDef($args, $isVararg) && ($this->guards($guards) || true) && $this->literal('{')) { $block = $this->pushBlock($this->fixTags(array($tag))); $block->args = $args; $block->isVararg = $isVararg; if (!empty($guards)) { $block->guards = $guards; } return true; } else { $this->seek($s); } // Opening a simple block if ($this->tags($tags) && $this->literal('{')) { $tags = $this->fixTags($tags); $this->pushBlock($tags); return true; } else { $this->seek($s); } // Closing a block if ($this->literal('}', false)) { try { $block = $this->pop(); } catch (exception $e) { $this->seek($s); $this->throwError($e->getMessage()); } $hidden = false; if (is_null($block->type)) { $hidden = true; if (!isset($block->args)) { foreach ($block->tags as $tag) { if (!is_string($tag) || $tag{0} != $this->lessc->mPrefix) { $hidden = false; break; } } } foreach ($block->tags as $tag) { if (is_string($tag)) { $this->env->children[$tag][] = $block; } } } if (!$hidden) { $this->append(array('block', $block), $s); } // This is done here so comments aren't bundled into he block that was just closed $this->whitespace(); return true; } // Mixin if ($this->mixinTags($tags) && ($this->argumentValues($argv) || true) && ($this->keyword($suffix) || true) && $this->end()) { $tags = $this->fixTags($tags); $this->append(array('mixin', $tags, $argv, $suffix), $s); return true; } else { $this->seek($s); } // Spare ; if ($this->literal(';')) { return true; } // Got nothing, throw error return false; } /** * [isDirective description] * * @param string $dirname [description] * @param [type] $directives [description] * * @return boolean */ protected function isDirective($dirname, $directives) { // TODO: cache pattern in parser $pattern = implode("|", array_map(array("F0FLess", "preg_quote"), $directives)); $pattern = '/^(-[a-z-]+-)?(' . $pattern . ')$/i'; return preg_match($pattern, $dirname); } /** * [fixTags description] * * @param [type] $tags [description] * * @return [type] [description] */ protected function fixTags($tags) { // Move @ tags out of variable namespace foreach ($tags as &$tag) { if ($tag{0} == $this->lessc->vPrefix) { $tag[0] = $this->lessc->mPrefix; } } return $tags; } /** * a list of expressions * * @param [type] &$exps [description] * * @return boolean */ protected function expressionList(&$exps) { $values = array(); while ($this->expression($exp)) { $values[] = $exp; } if (count($values) == 0) { return false; } $exps = F0FLess::compressList($values, ' '); return true; } /** * Attempt to consume an expression. * * @param string &$out [description] * * @link http://en.wikipedia.org/wiki/Operator-precedence_parser#Pseudo-code * * @return boolean */ protected function expression(&$out) { if ($this->value($lhs)) { $out = $this->expHelper($lhs, 0); // Look for / shorthand if (!empty($this->env->supressedDivision)) { unset($this->env->supressedDivision); $s = $this->seek(); if ($this->literal("/") && $this->value($rhs)) { $out = array("list", "", array($out, array("keyword", "/"), $rhs)); } else { $this->seek($s); } } return true; } return false; } /** * Recursively parse infix equation with $lhs at precedence $minP * * @param type $lhs [description] * @param type $minP [description] * * @return string */ protected function expHelper($lhs, $minP) { $this->inExp = true; $ss = $this->seek(); while (true) { $whiteBefore = isset($this->buffer[$this->count - 1]) && ctype_space($this->buffer[$this->count - 1]); // If there is whitespace before the operator, then we require // whitespace after the operator for it to be an expression $needWhite = $whiteBefore && !$this->inParens; if ($this->match(self::$operatorString . ($needWhite ? '\s' : ''), $m) && self::$precedence[$m[1]] >= $minP) { if (!$this->inParens && isset($this->env->currentProperty) && $m[1] == "/" && empty($this->env->supressedDivision)) { foreach (self::$supressDivisionProps as $pattern) { if (preg_match($pattern, $this->env->currentProperty)) { $this->env->supressedDivision = true; break 2; } } } $whiteAfter = isset($this->buffer[$this->count - 1]) && ctype_space($this->buffer[$this->count - 1]); if (!$this->value($rhs)) { break; } // Peek for next operator to see what to do with rhs if ($this->peek(self::$operatorString, $next) && self::$precedence[$next[1]] > self::$precedence[$m[1]]) { $rhs = $this->expHelper($rhs, self::$precedence[$next[1]]); } $lhs = array('expression', $m[1], $lhs, $rhs, $whiteBefore, $whiteAfter); $ss = $this->seek(); continue; } break; } $this->seek($ss); return $lhs; } /** * Consume a list of values for a property * * @param [type] &$value [description] * @param [type] $keyName [description] * * @return boolean */ public function propertyValue(&$value, $keyName = null) { $values = array(); if ($keyName !== null) { $this->env->currentProperty = $keyName; } $s = null; while ($this->expressionList($v)) { $values[] = $v; $s = $this->seek(); if (!$this->literal(',')) { break; } } if ($s) { $this->seek($s); } if ($keyName !== null) { unset($this->env->currentProperty); } if (count($values) == 0) { return false; } $value = F0FLess::compressList($values, ', '); return true; } /** * [parenValue description] * * @param [type] &$out [description] * * @return boolean */ protected function parenValue(&$out) { $s = $this->seek(); // Speed shortcut if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "(") { return false; } $inParens = $this->inParens; if ($this->literal("(") && ($this->inParens = true) && $this->expression($exp) && $this->literal(")")) { $out = $exp; $this->inParens = $inParens; return true; } else { $this->inParens = $inParens; $this->seek($s); } return false; } /** * a single value * * @param [type] &$value [description] * * @return boolean */ protected function value(&$value) { $s = $this->seek(); // Speed shortcut if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] == "-") { // Negation if ($this->literal("-", false) &&(($this->variable($inner) && $inner = array("variable", $inner)) || $this->unit($inner) || $this->parenValue($inner))) { $value = array("unary", "-", $inner); return true; } else { $this->seek($s); } } if ($this->parenValue($value)) { return true; } if ($this->unit($value)) { return true; } if ($this->color($value)) { return true; } if ($this->func($value)) { return true; } if ($this->string($value)) { return true; } if ($this->keyword($word)) { $value = array('keyword', $word); return true; } // Try a variable if ($this->variable($var)) { $value = array('variable', $var); return true; } // Unquote string (should this work on any type? if ($this->literal("~") && $this->string($str)) { $value = array("escape", $str); return true; } else { $this->seek($s); } // Css hack: \0 if ($this->literal('\\') && $this->match('([0-9]+)', $m)) { $value = array('keyword', '\\' . $m[1]); return true; } else { $this->seek($s); } return false; } /** * an import statement * * @param [type] &$out [description] * * @return boolean */ protected function import(&$out) { $s = $this->seek(); if (!$this->literal('@import')) { return false; } /* * @import "something.css" media; * @import url("something.css") media; * @import url(something.css) media; */ if ($this->propertyValue($value)) { $out = array("import", $value); return true; } } /** * [mediaQueryList description] * * @param [type] &$out [description] * * @return boolean */ protected function mediaQueryList(&$out) { if ($this->genericList($list, "mediaQuery", ",", false)) { $out = $list[2]; return true; } return false; } /** * [mediaQuery description] * * @param [type] &$out [description] * * @return [type] [description] */ protected function mediaQuery(&$out) { $s = $this->seek(); $expressions = null; $parts = array(); if (($this->literal("only") && ($only = true) || $this->literal("not") && ($not = true) || true) && $this->keyword($mediaType)) { $prop = array("mediaType"); if (isset($only)) { $prop[] = "only"; } if (isset($not)) { $prop[] = "not"; } $prop[] = $mediaType; $parts[] = $prop; } else { $this->seek($s); } if (!empty($mediaType) && !$this->literal("and")) { // ~ } else { $this->genericList($expressions, "mediaExpression", "and", false); if (is_array($expressions)) { $parts = array_merge($parts, $expressions[2]); } } if (count($parts) == 0) { $this->seek($s); return false; } $out = $parts; return true; } /** * [mediaExpression description] * * @param [type] &$out [description] * * @return boolean */ protected function mediaExpression(&$out) { $s = $this->seek(); $value = null; if ($this->literal("(") && $this->keyword($feature) && ($this->literal(":") && $this->expression($value) || true) && $this->literal(")")) { $out = array("mediaExp", $feature); if ($value) { $out[] = $value; } return true; } elseif ($this->variable($variable)) { $out = array('variable', $variable); return true; } $this->seek($s); return false; } /** * An unbounded string stopped by $end * * @param [type] $end [description] * @param [type] &$out [description] * @param [type] $nestingOpen [description] * @param [type] $rejectStrs [description] * * @return boolean */ protected function openString($end, &$out, $nestingOpen = null, $rejectStrs = null) { $oldWhite = $this->eatWhiteDefault; $this->eatWhiteDefault = false; $stop = array("'", '"', "@{", $end); $stop = array_map(array("F0FLess", "preg_quote"), $stop); // $stop[] = self::$commentMulti; if (!is_null($rejectStrs)) { $stop = array_merge($stop, $rejectStrs); } $patt = '(.*?)(' . implode("|", $stop) . ')'; $nestingLevel = 0; $content = array(); while ($this->match($patt, $m, false)) { if (!empty($m[1])) { $content[] = $m[1]; if ($nestingOpen) { $nestingLevel += substr_count($m[1], $nestingOpen); } } $tok = $m[2]; $this->count -= strlen($tok); if ($tok == $end) { if ($nestingLevel == 0) { break; } else { $nestingLevel--; } } if (($tok == "'" || $tok == '"') && $this->string($str)) { $content[] = $str; continue; } if ($tok == "@{" && $this->interpolation($inter)) { $content[] = $inter; continue; } if (in_array($tok, $rejectStrs)) { $count = null; break; } $content[] = $tok; $this->count += strlen($tok); } $this->eatWhiteDefault = $oldWhite; if (count($content) == 0) return false; // Trim the end if (is_string(end($content))) { $content[count($content) - 1] = rtrim(end($content)); } $out = array("string", "", $content); return true; } /** * [string description] * * @param [type] &$out [description] * * @return boolean */ protected function string(&$out) { $s = $this->seek(); if ($this->literal('"', false)) { $delim = '"'; } elseif ($this->literal("'", false)) { $delim = "'"; } else { return false; } $content = array(); // Look for either ending delim , escape, or string interpolation $patt = '([^\n]*?)(@\{|\\\\|' . F0FLess::preg_quote($delim) . ')'; $oldWhite = $this->eatWhiteDefault; $this->eatWhiteDefault = false; while ($this->match($patt, $m, false)) { $content[] = $m[1]; if ($m[2] == "@{") { $this->count -= strlen($m[2]); if ($this->interpolation($inter, false)) { $content[] = $inter; } else { $this->count += strlen($m[2]); // Ignore it $content[] = "@{"; } } elseif ($m[2] == '\\') { $content[] = $m[2]; if ($this->literal($delim, false)) { $content[] = $delim; } } else { $this->count -= strlen($delim); // Delim break; } } $this->eatWhiteDefault = $oldWhite; if ($this->literal($delim)) { $out = array("string", $delim, $content); return true; } $this->seek($s); return false; } /** * [interpolation description] * * @param [type] &$out [description] * * @return boolean */ protected function interpolation(&$out) { $oldWhite = $this->eatWhiteDefault; $this->eatWhiteDefault = true; $s = $this->seek(); if ($this->literal("@{") && $this->openString("}", $interp, null, array("'", '"', ";")) && $this->literal("}", false)) { $out = array("interpolate", $interp); $this->eatWhiteDefault = $oldWhite; if ($this->eatWhiteDefault) { $this->whitespace(); } return true; } $this->eatWhiteDefault = $oldWhite; $this->seek($s); return false; } /** * [unit description] * * @param [type] &$unit [description] * * @return boolean */ protected function unit(&$unit) { // Speed shortcut if (isset($this->buffer[$this->count])) { $char = $this->buffer[$this->count]; if (!ctype_digit($char) && $char != ".") { return false; } } if ($this->match('([0-9]+(?:\.[0-9]*)?|\.[0-9]+)([%a-zA-Z]+)?', $m)) { $unit = array("number", $m[1], empty($m[2]) ? "" : $m[2]); return true; } return false; } /** * a # color * * @param [type] &$out [description] * * @return boolean */ protected function color(&$out) { if ($this->match('(#(?:[0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{3}))', $m)) { if (strlen($m[1]) > 7) { $out = array("string", "", array($m[1])); } else { $out = array("raw_color", $m[1]); } return true; } return false; } /** * Consume a list of property values delimited by ; and wrapped in () * * @param [type] &$args [description] * @param [type] $delim [description] * * @return boolean */ protected function argumentValues(&$args, $delim = ',') { $s = $this->seek(); if (!$this->literal('(')) { return false; } $values = array(); while (true) { if ($this->expressionList($value)) { $values[] = $value; } if (!$this->literal($delim)) { break; } else { if ($value == null) { $values[] = null; } $value = null; } } if (!$this->literal(')')) { $this->seek($s); return false; } $args = $values; return true; } /** * Consume an argument definition list surrounded by () * each argument is a variable name with optional value * or at the end a ... or a variable named followed by ... * * @param [type] &$args [description] * @param [type] &$isVararg [description] * @param [type] $delim [description] * * @return boolean */ protected function argumentDef(&$args, &$isVararg, $delim = ',') { $s = $this->seek(); if (!$this->literal('(')) return false; $values = array(); $isVararg = false; while (true) { if ($this->literal("...")) { $isVararg = true; break; } if ($this->variable($vname)) { $arg = array("arg", $vname); $ss = $this->seek(); if ($this->assign() && $this->expressionList($value)) { $arg[] = $value; } else { $this->seek($ss); if ($this->literal("...")) { $arg[0] = "rest"; $isVararg = true; } } $values[] = $arg; if ($isVararg) { break; } continue; } if ($this->value($literal)) { $values[] = array("lit", $literal); } if (!$this->literal($delim)) { break; } } if (!$this->literal(')')) { $this->seek($s); return false; } $args = $values; return true; } /** * Consume a list of tags * This accepts a hanging delimiter * * @param [type] &$tags [description] * @param [type] $simple [description] * @param [type] $delim [description] * * @return boolean */ protected function tags(&$tags, $simple = false, $delim = ',') { $tags = array(); while ($this->tag($tt, $simple)) { $tags[] = $tt; if (!$this->literal($delim)) { break; } } if (count($tags) == 0) { return false; } return true; } /** * List of tags of specifying mixin path * Optionally separated by > (lazy, accepts extra >) * * @param [type] &$tags [description] * * @return boolean */ protected function mixinTags(&$tags) { $s = $this->seek(); $tags = array(); while ($this->tag($tt, true)) { $tags[] = $tt; $this->literal(">"); } if (count($tags) == 0) { return false; } return true; } /** * A bracketed value (contained within in a tag definition) * * @param [type] &$value [description] * * @return boolean */ protected function tagBracket(&$value) { // Speed shortcut if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "[") { return false; } $s = $this->seek(); if ($this->literal('[') && $this->to(']', $c, true) && $this->literal(']', false)) { $value = '[' . $c . ']'; // Whitespace? if ($this->whitespace()) { $value .= " "; } // Escape parent selector, (yuck) $value = str_replace($this->lessc->parentSelector, "$&$", $value); return true; } $this->seek($s); return false; } /** * [tagExpression description] * * @param [type] &$value [description] * * @return boolean */ protected function tagExpression(&$value) { $s = $this->seek(); if ($this->literal("(") && $this->expression($exp) && $this->literal(")")) { $value = array('exp', $exp); return true; } $this->seek($s); return false; } /** * A single tag * * @param [type] &$tag [description] * @param boolean $simple [description] * * @return boolean */ protected function tag(&$tag, $simple = false) { if ($simple) { $chars = '^@,:;{}\][>\(\) "\''; } else { $chars = '^@,;{}["\''; } $s = $this->seek(); if (!$simple && $this->tagExpression($tag)) { return true; } $hasExpression = false; $parts = array(); while ($this->tagBracket($first)) { $parts[] = $first; } $oldWhite = $this->eatWhiteDefault; $this->eatWhiteDefault = false; while (true) { if ($this->match('([' . $chars . '0-9][' . $chars . ']*)', $m)) { $parts[] = $m[1]; if ($simple) { break; } while ($this->tagBracket($brack)) { $parts[] = $brack; } continue; } if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] == "@") { if ($this->interpolation($interp)) { $hasExpression = true; // Don't unescape $interp[2] = true; $parts[] = $interp; continue; } if ($this->literal("@")) { $parts[] = "@"; continue; } } // For keyframes if ($this->unit($unit)) { $parts[] = $unit[1]; $parts[] = $unit[2]; continue; } break; } $this->eatWhiteDefault = $oldWhite; if (!$parts) { $this->seek($s); return false; } if ($hasExpression) { $tag = array("exp", array("string", "", $parts)); } else { $tag = trim(implode($parts)); } $this->whitespace(); return true; } /** * A css function * * @param [type] &$func [description] * * @return boolean */ protected function func(&$func) { $s = $this->seek(); if ($this->match('(%|[\w\-_][\w\-_:\.]+|[\w_])', $m) && $this->literal('(')) { $fname = $m[1]; $sPreArgs = $this->seek(); $args = array(); while (true) { $ss = $this->seek(); // This ugly nonsense is for ie filter properties if ($this->keyword($name) && $this->literal('=') && $this->expressionList($value)) { $args[] = array("string", "", array($name, "=", $value)); } else { $this->seek($ss); if ($this->expressionList($value)) { $args[] = $value; } } if (!$this->literal(',')) { break; } } $args = array('list', ',', $args); if ($this->literal(')')) { $func = array('function', $fname, $args); return true; } elseif ($fname == 'url') { // Couldn't parse and in url? treat as string $this->seek($sPreArgs); if ($this->openString(")", $string) && $this->literal(")")) { $func = array('function', $fname, $string); return true; } } } $this->seek($s); return false; } /** * Consume a less variable * * @param [type] &$name [description] * * @return boolean */ protected function variable(&$name) { $s = $this->seek(); if ($this->literal($this->lessc->vPrefix, false) && ($this->variable($sub) || $this->keyword($name))) { if (!empty($sub)) { $name = array('variable', $sub); } else { $name = $this->lessc->vPrefix . $name; } return true; } $name = null; $this->seek($s); return false; } /** * Consume an assignment operator * Can optionally take a name that will be set to the current property name * * @param string $name [description] * * @return boolean */ protected function assign($name = null) { if ($name) { $this->currentProperty = $name; } return $this->literal(':') || $this->literal('='); } /** * Consume a keyword * * @param [type] &$word [description] * * @return boolean */ protected function keyword(&$word) { if ($this->match('([\w_\-\*!"][\w\-_"]*)', $m)) { $word = $m[1]; return true; } return false; } /** * Consume an end of statement delimiter * * @return boolean */ protected function end() { if ($this->literal(';')) { return true; } elseif ($this->count == strlen($this->buffer) || $this->buffer{$this->count} == '}') { // If there is end of file or a closing block next then we don't need a ; return true; } return false; } /** * [guards description] * * @param [type] &$guards [description] * * @return boolean */ protected function guards(&$guards) { $s = $this->seek(); if (!$this->literal("when")) { $this->seek($s); return false; } $guards = array(); while ($this->guardGroup($g)) { $guards[] = $g; if (!$this->literal(",")) { break; } } if (count($guards) == 0) { $guards = null; $this->seek($s); return false; } return true; } /** * A bunch of guards that are and'd together * * @param [type] &$guardGroup [description] * * @todo rename to guardGroup * * @return boolean */ protected function guardGroup(&$guardGroup) { $s = $this->seek(); $guardGroup = array(); while ($this->guard($guard)) { $guardGroup[] = $guard; if (!$this->literal("and")) { break; } } if (count($guardGroup) == 0) { $guardGroup = null; $this->seek($s); return false; } return true; } /** * [guard description] * * @param [type] &$guard [description] * * @return boolean */ protected function guard(&$guard) { $s = $this->seek(); $negate = $this->literal("not"); if ($this->literal("(") && $this->expression($exp) && $this->literal(")")) { $guard = $exp; if ($negate) { $guard = array("negate", $guard); } return true; } $this->seek($s); return false; } /* raw parsing functions */ /** * [literal description] * * @param [type] $what [description] * @param [type] $eatWhitespace [description] * * @return boolean */ protected function literal($what, $eatWhitespace = null) { if ($eatWhitespace === null) { $eatWhitespace = $this->eatWhiteDefault; } // Shortcut on single letter if (!isset($what[1]) && isset($this->buffer[$this->count])) { if ($this->buffer[$this->count] == $what) { if (!$eatWhitespace) { $this->count++; return true; } } else { return false; } } if (!isset(self::$literalCache[$what])) { self::$literalCache[$what] = F0FLess::preg_quote($what); } return $this->match(self::$literalCache[$what], $m, $eatWhitespace); } /** * [genericList description] * * @param [type] &$out [description] * @param [type] $parseItem [description] * @param string $delim [description] * @param boolean $flatten [description] * * @return boolean */ protected function genericList(&$out, $parseItem, $delim = "", $flatten = true) { $s = $this->seek(); $items = array(); while ($this->$parseItem($value)) { $items[] = $value; if ($delim) { if (!$this->literal($delim)) { break; } } } if (count($items) == 0) { $this->seek($s); return false; } if ($flatten && count($items) == 1) { $out = $items[0]; } else { $out = array("list", $delim, $items); } return true; } /** * Advance counter to next occurrence of $what * $until - don't include $what in advance * $allowNewline, if string, will be used as valid char set * * @param [type] $what [description] * @param [type] &$out [description] * @param boolean $until [description] * @param boolean $allowNewline [description] * * @return boolean */ protected function to($what, &$out, $until = false, $allowNewline = false) { if (is_string($allowNewline)) { $validChars = $allowNewline; } else { $validChars = $allowNewline ? "." : "[^\n]"; } if (!$this->match('(' . $validChars . '*?)' . F0FLess::preg_quote($what), $m, !$until)) { return false; } if ($until) { // Give back $what $this->count -= strlen($what); } $out = $m[1]; return true; } /** * Try to match something on head of buffer * * @param [type] $regex [description] * @param [type] &$out [description] * @param [type] $eatWhitespace [description] * * @return boolean */ protected function match($regex, &$out, $eatWhitespace = null) { if ($eatWhitespace === null) { $eatWhitespace = $this->eatWhiteDefault; } $r = '/' . $regex . ($eatWhitespace && !$this->writeComments ? '\s*' : '') . '/Ais'; if (preg_match($r, $this->buffer, $out, null, $this->count)) { $this->count += strlen($out[0]); if ($eatWhitespace && $this->writeComments) { $this->whitespace(); } return true; } return false; } /** * Watch some whitespace * * @return boolean */ protected function whitespace() { if ($this->writeComments) { $gotWhite = false; while (preg_match(self::$whitePattern, $this->buffer, $m, null, $this->count)) { if (isset($m[1]) && empty($this->commentsSeen[$this->count])) { $this->append(array("comment", $m[1])); $this->commentsSeen[$this->count] = true; } $this->count += strlen($m[0]); $gotWhite = true; } return $gotWhite; } else { $this->match("", $m); return strlen($m[0]) > 0; } } /** * Match something without consuming it * * @param [type] $regex [description] * @param [type] &$out [description] * @param [type] $from [description] * * @return boolean */ protected function peek($regex, &$out = null, $from = null) { if (is_null($from)) { $from = $this->count; } $r = '/' . $regex . '/Ais'; $result = preg_match($r, $this->buffer, $out, null, $from); return $result; } /** * Seek to a spot in the buffer or return where we are on no argument * * @param [type] $where [description] * * @return boolean */ protected function seek($where = null) { if ($where === null) { return $this->count; } else { $this->count = $where; } return true; } /* misc functions */ /** * [throwError description] * * @param string $msg [description] * @param [type] $count [description] * * @return void */ public function throwError($msg = "parse error", $count = null) { $count = is_null($count) ? $this->count : $count; $line = $this->line + substr_count(substr($this->buffer, 0, $count), "\n"); if (!empty($this->sourceName)) { $loc = "$this->sourceName on line $line"; } else { $loc = "line: $line"; } // TODO this depends on $this->count if ($this->peek("(.*?)(\n|$)", $m, $count)) { throw new exception("$msg: failed at `$m[1]` $loc"); } else { throw new exception("$msg: $loc"); } } /** * [pushBlock description] * * @param [type] $selectors [description] * @param [type] $type [description] * * @return stdClass */ protected function pushBlock($selectors = null, $type = null) { $b = new stdclass; $b->parent = $this->env; $b->type = $type; $b->id = self::$nextBlockId++; // TODO: kill me from here $b->isVararg = false; $b->tags = $selectors; $b->props = array(); $b->children = array(); $this->env = $b; return $b; } /** * Push a block that doesn't multiply tags * * @param [type] $type [description] * * @return stdClass */ protected function pushSpecialBlock($type) { return $this->pushBlock(null, $type); } /** * Append a property to the current block * * @param [type] $prop [description] * @param [type] $pos [description] * * @return void */ protected function append($prop, $pos = null) { if ($pos !== null) { $prop[-1] = $pos; } $this->env->props[] = $prop; } /** * Pop something off the stack * * @return [type] [description] */ protected function pop() { $old = $this->env; $this->env = $this->env->parent; return $old; } /** * Remove comments from $text * * @param [type] $text [description] * * @todo: make it work for all functions, not just url * * @return [type] [description] */ protected function removeComments($text) { $look = array( 'url(', '//', '/*', '"', "'" ); $out = ''; $min = null; while (true) { // Find the next item foreach ($look as $token) { $pos = strpos($text, $token); if ($pos !== false) { if (!isset($min) || $pos < $min[1]) { $min = array($token, $pos); } } } if (is_null($min)) break; $count = $min[1]; $skip = 0; $newlines = 0; switch ($min[0]) { case 'url(': if (preg_match('/url\(.*?\)/', $text, $m, 0, $count)) { $count += strlen($m[0]) - strlen($min[0]); } break; case '"': case "'": if (preg_match('/' . $min[0] . '.*?' . $min[0] . '/', $text, $m, 0, $count)) { $count += strlen($m[0]) - 1; } break; case '//': $skip = strpos($text, "\n", $count); if ($skip === false) { $skip = strlen($text) - $count; } else { $skip -= $count; } break; case '/*': if (preg_match('/\/\*.*?\*\//s', $text, $m, 0, $count)) { $skip = strlen($m[0]); $newlines = substr_count($m[0], "\n"); } break; } if ($skip == 0) { $count += strlen($min[0]); } $out .= substr($text, 0, $count) . str_repeat("\n", $newlines); $text = substr($text, $count + $skip); $min = null; } return $out . $text; } } old.less 0000604 00000010666 15245560706 0006231 0 ustar 00 /** * @package Tabs * @version 5.3.0 * * @author Peter van Westen <peter@nonumber.nl> * @link http://www.nonumber.nl * @copyright Copyright © 2016 NoNumber All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* * You can override this stylesheet by creating your own in: * /templates/[YOUR TEMPLATE]/css/tabs/old.min.css */ @import "../../nnframework/less/init.less"; @import "bootstrap.less"; .nn_tabs.oldschool { > ul { margin: 5px 10px 0 10px !important; line-height: 1em; zoom: 1; // Fix for IE height issue padding: 0 !important; list-style: none !important; list-style-image: none !important; background: none !important; border: none !important; > li { float: left; margin: 5px 2px 0 0 !important; padding: 0; list-style: none !important; list-style-image: none !important; background: none !important; &:before { content: ""; margin: 0; padding: 0; } // Tabs > a, > a:link, > a:visited, > a:active, > a:hover { color: #666666; outline: 0; text-decoration: none; } > a, > a:hover { display: block; width: auto; _width: 0; padding: 5px; font-size: 14px; line-height: 1em !important; font-weight: bold; white-space: nowrap; border: solid 1px @btnBorder; border-bottom: none; text-decoration: none !important; #gradient > .vertical(@white, @white); .border-radius(10px 10px 0 0); } &.blue > a, &.blue > a:hover, &.green > a, &.green > a:hover, &.red > a, &.red > a:hover, &.orange > a, &.orange > a:hover, &.grey > a, &.grey > a:hover, &.gray > a, &.gray > a:hover, &.primary > a, &.primary > a:hover, &.info > a, &.info > a:hover, &.success > a, &.success > a:hover, &.warning > a, &.warning > a:hover, &.danger > a, &.danger > a:hover, &.error > a, &.error > a:hover { padding: 5px 5px 0 5px; border: solid 1px @btnBorder !important; border-bottom: none !important; .border-radius(10px 10px 0 0); } @bgcolor: @btnPrimaryBackground; // Active state &.active > a, &.active > a:hover { color: @white; #gradient > .vertical(lighten(@bgcolor, 15%), lighten(@bgcolor, 0%)); } // Hover state > a:hover { color: @grayDark; #gradient > .vertical(lighten(@bgcolor, 30%), lighten(@bgcolor, 20%)); } span.nn_tabs-title-inactive { display: inherit; } span.nn_tabs-title-active { display: none; } &.active { span.nn_tabs-title-inactive { display: none; } span.nn_tabs-title-active { display: inherit; } } } } // Content area > .tab-content { margin: 0; padding: 0; margin-bottom: 10px; border: none !important; > .tab-pane { margin: 0; margin-bottom: 10px; clear: left; padding: 10px 20px; border: 1px solid @btnBorder; .border-radius(10px); } } .nn_tabs-scroll { position: relative; visibility: hidden; padding: 0; } .nav-tabs-sm { display: none; } .nn_tabs-title { display: none; } .tabColor(@name, @color) { > li.@{name} { // Normal state > a { #gradient > .vertical(lighten(@color, 40%), lighten(@color, 30%)); // Hover state &:hover { #gradient > .vertical(lighten(@color, 30%), lighten(@color, 15%)); } } // Active state &.active { > a, > a:hover { #gradient > .vertical(lighten(@color, 15%), lighten(@color, 0%)); } } } } > ul { // Style: blue .tabColor(~'blue', @btnPrimaryBackground); .tabColor(~'primary', @btnPrimaryBackground); // Style: info .tabColor(~'info', @btnInfoBackgroundHighlight); // Style: green / success .tabColor(~'green', @btnSuccessBackgroundHighlight); .tabColor(~'success', @btnSuccessBackgroundHighlight); // Style: orange / warning .tabColor(~'orange', @btnWarningBackgroundHighlight); .tabColor(~'warning', @btnWarningBackgroundHighlight); // Style: red / danger .tabColor(~'red', @btnDangerBackgroundHighlight); .tabColor(~'danger', @btnDangerBackgroundHighlight); .tabColor(~'error', @btnDangerBackgroundHighlight); // Style: grey / gray .tabColor(~'grey', #777777); .tabColor(~'gray', #777777); } } custom.less 0000604 00000004044 15245560706 0006756 0 ustar 00 /** * @package Tabs * @version 8.0.1 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* * This is an example of how you can create custom styles * Do not edit this file, as it will not be loaded by default and will get overwritten if you update Tabs * Place your own custom styles in your templates stylesheet * or copy the style.css file to /templates/[YOUR TEMPLATE]/css/tabs/style.min.css and customise that */ @import "../../regularlabs/less/init.less"; /* Custom Style: mystyle1 */ .rl_tabs.top { > ul.nav { > li.mystyle1 { > a { .transition-duration(0s); font-size: 22px; #gradient > .vertical(#ff9999, #ffffff); background-color: #ffffff; &:hover { #gradient > .vertical(#9999ff, #ffffff); background-color: #ffffff; } } &.active { > a, > a:hover { #gradient > .vertical(#99ff99, #ffffff); background-color: #ffffff; } } } } > .tab-content { > .tab-pane.mystyle1 { #gradient > .vertical-three-colors(#ffffff, #ffffff, 25%, #ccffcc); } } } /* Custom Style: mystyle2 */ .rl_tabs.top { > ul.nav { > li.mystyle2 { > a { .transition-duration(1s); font-family: @monoFontFamily; .border-radius(0 0 0 0); margin-left: 10px; margin-right: 10px; padding: 8px 20px; background-color: #aaaaaa; color: #ffffff; border-color: #666666; border-bottom-color: #dddddd; &:hover { background-color: #999999; border-color: #666666; } } &.active { > a, > a:hover { .border-radius(0 30px 0 0); background-color: #666666; border-color: #666666; } } } } > .tab-content { > .tab-pane.mystyle2 { font-family: @monoFontFamily; background-color: #666666; color: #ffffff; } } } popup.less 0000604 00000003343 15245560706 0006610 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ @import "init.less"; @import "font.less"; body.reglab-popup { padding: 0; .container-fluid { padding: 0 20px; } .navbar { margin-bottom: 10px; .navbar-inner { padding-left: 0; padding-right: 0; border-radius: 0; border-left: none; border-right: none; } .btn-toolbar, #toolbar { margin-top: 2px; margin-bottom: 2px; } } .header { margin-left: 0; margin-right: 0; &.has-navbar-fixed-top { margin-top: 44px; margin-bottom: 10px; padding-top: 2px; padding-bottom: 2px; } } .subhead { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } .page-title { text-align: left; } label > span[class^="icon-reglab"] { padding: 1px 0 3px; } .reglab-overlay { background-color: #000000; position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 5000; opacity: .2; cursor: wait; } .chzn-container-single .chzn-single div b { background: none !important; } .nav-tabs { > li { > a { border-color: #eeeeee #eeeeee #dddddd; background-color: #f5f5f5; margin-right: 4px; &:hover, &:focus { background-color: #eeeeee; } } &.active a { border-color: #dddddd; border-bottom-color: transparent; background-color: #ffffff; } } } } style.less 0000604 00000013472 15245560706 0006611 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ @import "init.less"; @import "font.less"; .rl_tablelist { td { height: 22px; color: @gray; } td.has-context { height: 23px; } } .rl_code { #font > #family > .monospace; color: @grayLight; } .well { .well { border-color: darken(@wellBackground, 7%); } } div.rl_well { padding-bottom: 0; h4 { margin-top: 6px; } &.alert-success, &.alert-error { color: @grayDark; } .controls .btn-group > .btn { min-width: auto; } } .well-striped:nth-child(even) { background-color: lighten(@wellBackground, 3%); } .alert.alert-inline { margin: 14px 0 0; } .alert.alert-noclose { padding: 8px 14px; } .rl_has-ignore .btn-primary.active, .rl_btn-ignore.btn-danger.active { background-color: @grayLight; border: 1px solid rgba(0, 0, 0, 0.2); &:hover, &:focus { background-color: darken(@grayLight, 15%); } } .rl_btn-exclude.btn-success.active { background-color: @btnDangerBackground; border: 1px solid rgba(0, 0, 0, 0.2); &:hover, &:focus { background-color: darken(@btnDangerBackground, 15%); } } .btn-group.btn-group-full, .subform-table-layout table .btn-group.btn-group-full, .btn-full { width: 100%; box-sizing: border-box; margin: 0; } .icon-back:before { content: "\e008"; } .icon-spin { -webkit-animation: spin .5s infinite linear; animation: spin .5s infinite linear; } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg) } 100% { -webkit-transform: rotate(359deg) } } @-moz-keyframes spin { 0% { -moz-transform: rotate(0deg) } 100% { -moz-transform: rotate(359deg) } } @-ms-keyframes spin { 0% { -ms-transform: rotate(0deg) } 100% { -ms-transform: rotate(359deg) } } @-o-keyframes spin { 0% { -o-transform: rotate(0deg) } 100% { -o-transform: rotate(359deg) } } @keyframes spin { 0% { transform: rotate(0deg) } 100% { transform: rotate(359deg) } } /* Dropdown and dropup fixes */ .btn-toolbar .modal, .btn-toolbar .dropdown-menu { font-size: 13px; } @media (min-width: 768px) { .dropdown { display: inline-block; } .dropdown-menu.dropup-menu { bottom: 100%; top: auto; } } /* popovers */ .popover { width: auto; min-width: 200px; } /* icons */ .icon-color { background: transparent url(../images/icon-color.png) no-repeat; width: 16px !important; height: 16px !important; } .clearfix { .clearfix(); } .thumbnail-small > .thumbnail > img { max-width: 40px; } #key_button, #jform_key_button { margin-left: 8px; } .ghosted { .opacity(60); } .rl_license { margin-top: 30px; text-align: center; } .rl_footer { margin-top: 30px; div { margin-top: 30px; text-align: center; } .rl_footer_review { margin-top: 5px; a.stars { display: inline-block; .icon-star { color: mix(@yellow, @orange); margin: 0; .transition-duration(500ms); } &:hover { text-decoration: none; .icon-star { .rotate(216deg); } } } } .rl_footer_logo { img { vertical-align: -40%; } } .rl_footer_copyright { margin-top: 3px; font-size: 0.7em; .opacity(60); } } .rl_simplecategory_new { margin-top: 4px; } .rl_codemirror .CodeMirror-activeline-background { background: rgba(164, 194, 235, .1); } /* better responsiveness */ @media (min-width: 768px) and (max-width: 1200px) { .row-fluid [class*="span"] { &[class*="span-md"] { margin-left: 2.12%; *margin-left: 2.03%; &:first-child { margin-left: 0; } } &.span-md-12 { width: 100%; *width: 99.94680851063829%; margin-left: 0; } &.span-md-11 { width: 91.48936170212765%; *width: 91.43617021276594%; } &.span-md-10 { width: 82.97872340425532%; *width: 82.92553191489361%; } &.span-md-9 { width: 74.46808510638297%; *width: 74.41489361702126%; } &.span-md-8 { width: 65.95744680851064%; *width: 65.90425531914893%; } &.span-md-7 { width: 57.44680851063829%; *width: 57.39361702127659%; } &.span-md-6 { width: 48.93617021276595%; *width: 48.88297872340425%; } &.span-md-5 { width: 40.42553191489362%; *width: 40.37234042553192%; } &.span-md-4 { width: 31.914893617021278%; *width: 31.861702127659576%; } &.span-md-3 { width: 23.404255319148934%; *width: 23.351063829787233%; } &.span-md-2 { width: 14.893617021276595%; *width: 14.840425531914894%; } &.span-md-1 { width: 6.382978723404255%; *width: 6.329787234042553%; } } } @media (min-width: 1200px) and (max-width: 1400px) { .row-fluid [class*="span"] { &.span-lg-12 { width: 100%; *width: 99.94680851063829%; margin-left: 0; } &.span-lg-11 { width: 91.48936170212765%; *width: 91.43617021276594%; } &.span-lg-10 { width: 82.97872340425532%; *width: 82.92553191489361%; } &.span-lg-9 { width: 74.46808510638297%; *width: 74.41489361702126%; } &.span-lg-8 { width: 65.95744680851064%; *width: 65.90425531914893%; } &.span-lg-7 { width: 57.44680851063829%; *width: 57.39361702127659%; } &.span-lg-6 { width: 48.93617021276595%; *width: 48.88297872340425%; } &.span-lg-5 { width: 40.42553191489362%; *width: 40.37234042553192%; } &.span-lg-4 { width: 31.914893617021278%; *width: 31.861702127659576%; } &.span-lg-3 { width: 23.404255319148934%; *width: 23.351063829787233%; } &.span-lg-2 { width: 14.893617021276595%; *width: 14.840425531914894%; } &.span-lg-1 { width: 6.382978723404255%; *width: 6.329787234042553%; } } } component.less 0000604 00000000073 15245561425 0007443 0 ustar 00 .com_content body, .com_mailto body { padding-top: 0; } home.less 0000604 00000007343 15245561425 0006400 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // VARIABLES & MIXINS // ------------------ @import "vars.less"; // Modify this for custom colors, font-sizes, etc // --------------------------------------------------------- // HOME SPOTLIGHTS // --------------------------------------------------------- // Spotlight 1 // ----------- .home .t3-sl-1 { padding: 0; // jumbotron .jumbotron { #gradient > .radial(@white, @grayLighter); border-bottom: 1px solid @T3borderColor; //jumbotron btn .btn-large { font-size: @baseFontSize * 1.75; padding: 18px ((@baseFontSize * 1.75) + 20px); } } // social buttons .t3-social { background: @grayLighter; padding: @T3globalPadding 0; .t3-social-btns { margin: 0; height: 20px; text-align: center; } .t3-social-btns li { display: inline-block; margin: 0 10px; height: 20px; } } } // Spotlight 1 (Inverted) // ---------------------- .T3HomeSpotlight1() when (@T3SpotlightsInverted = 1) { // Begin: Mixin Styling color: @grayLighter; // jumbotron .jumbotron { #gradient > .radial(@grayDarker, @grayDarker); h1 { color: @white; } } // End: Mixin Styling } .T3HomeSpotlight1() when (@T3SpotlightsInverted = 0) { // Leave blank here because we will use the default style. } // Calling the styles .home .t3-sl-1 { .T3HomeSpotlight1 } // Spotlight 2 // ----------- .home .t3-sl-2 { text-align: center; p { font-size: @T3biggerFontSize; line-height: @baseLineHeight + 2px; } } // Spotlight 3 & 4 // --------------- .home .t3-sl-3 p img { margin-bottom: @T3globalMargin; } .home .t3-sl-3, .home .t3-sl-4 { border-top: 1px solid @T3borderColor; text-align: center; p { font-size: @T3biggerFontSize; line-height: @baseLineHeight + 2px; } // jumbotron .jumbotron { padding-top: 0; h1 { margin-bottom: @T3globalMargin / 2; margin-top: 0; } p { font-size: @baseFontSize * 1.5; line-height: 1.275; color: @grayLight; } } } // Spotlight 5 // ----------- .home .t3-sl-5 { background: @grayLighter; border-top: 1px solid @T3borderColor; padding: 0; // jumbotron .jumbotron { //jumbotron btn .btn-large { font-size: @baseFontSize * 1.75; padding: 18px ((@baseFontSize * 1.75) + 20px); //width: 269px; } } // arrow .section-arrow-alt { background: url("@{T3ImagePath}/arrow-section-alt.png") no-repeat center -1px @grayLighter; width: 37px; height: 19px; position: absolute; top: -1px; left: 50%; margin-left: -19px; } } // Spotlight 5 (Inverted) // ---------------------- .T3HomeSpotlight5() when (@T3SpotlightsInverted = 1) { // Begin: Mixin Styling background: @grayDarker; border-bottom: 1px solid @T3borderColor; color: @grayLighter; // arrow .section-arrow-alt { display: none; } // End: Mixin Styling } .T3HomeSpotlight5() when (@T3SpotlightsInverted = 0) { // Leave blank here because we will use the default style. } // Calling the styles .home .t3-sl-5 { .T3HomeSpotlight5 } typo-core-responsive.less 0000604 00000002563 15245561425 0011563 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // // MOBILE // ------------------------------------------------------------- @media (max-width: 767px) { // HEADINGS & TITLES // --------------------------------------------------------- h1 { font-size: @baseFontSize * 2; line-height: 1.25; small { font-size: @baseFontSize * 2; } } h2 { font-size: @baseFontSize * 1.5; line-height: 1.25; small { font-size: @baseFontSize * 1.5; } } h3 { font-size: @baseFontSize * 1.25; line-height: 1.25; small { font-size: @baseFontSize; } } h4, h5, h6 { font-size: @baseFontSize; line-height: 1.25; small { font-size: @baseFontSize -2px; } } } megamenu-responsive.less 0000604 00000005160 15245561425 0011434 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // VARIABLES & MIXINS // ------------------ // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/variables.less"; // Bootstrap mixins @import "../bootstrap/less/mixins.less"; // T3 Base variables @import "variables.less"; // // MOBILE // --------------------------------------------------------- @media (max-width: @navbarCollapseWidth) { .t3-megamenu { // THE MEGAMENU //------------------------------------------------------ // Global Menu Inner padding // ------------------------- .mega-inner { padding: (@T3globalPadding / 2) @T3globalPadding; } // Inner Padding for 1 column .span12 .mega-inner { } // Menu Grids // ---------- .row-fluid, .mega-dropdown-menu, .row-fluid [class*="span"] { width: 100% !important; min-width: 100% !important; left: 0 !important; margin-left: 0 !important; transform: none !important; -webkit-transform: none !important; -moz-transform: none !important; -ms-transform: none !important; -o-transform: none !important; } .row-fluid + .row-fluid { padding-top: @T3globalPadding / 2; border-top: 1px solid @hrBorder; } .row-fluid [class*="span"] { } // Hidden when collapse .hidden-collapse, .always-show .caret, .sub-hidden-collapse > .nav-child, .sub-hidden-collapse .caret, .sub-hidden-collapse > a:after, .always-show .dropdown-submenu > a:after { display: none !important; } // Hide the captions too .mega-caption { display: none !important; } } // MEGAMENU RTL override // -------------------------------------------------------------- // html[dir="rtl"] { .t3-megamenu { // Menu Grids // ---------- .row-fluid, .mega-dropdown-menu, .row-fluid [class*="span"] { right: 0 !important; margin-right: 0 !important; } } } } form.less 0000604 00000003773 15245561425 0006416 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ @import "init.less"; .chzn-small { width: 120px; } // hide chosen dropdown on color picker J3.2.3+ div.chzn-container[id^="color_"][id$="_chzn"], div.chzn-container#advancedparams_color_chzn { display: none; } .input-full { width: 100%; box-sizing: border-box; } input[type="text"].input-full { height: 28px; } .control-group > .alert { &:first-child { margin-top: 0; } &:last-child { margin-bottom: 0; } } .controls .input-maximize { &:focus, .chzn-container:hover, .chzn-with-drop { min-width: 99%; } } .btn-group-yesno-reverse { .active { &.btn-success { .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight); } &.btn-danger { .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight); } } } input.rl_codefield, input.rl_keyfield, div.rl_keycode { #font > #family > .monospace; font-size: 1.4em !important; } input.rl_codefield, input.rl_keyfield { font-size: 14px !important; } .btn.disabled { cursor: not-allowed !important; } .rl_keycode { color: @grayLight; padding: 2px 0; } fieldset.rl_plaintext { margin-top: 5px; } .rl_textarea { .box-sizing(border-box); } .inlist .simplecolors-swatch span { position: relative; } .rl_spinner { display: inline-block; box-sizing: border-box; vertical-align: top; margin: 0 4px; border-top: 5px solid #7ac143; border-right: 5px solid #f9a541; border-bottom: 5px solid #f44321; border-left: 5px solid #5091cd; border-radius: 50%; width: 20px; height: 20px; animation: rl_spinner 1s linear infinite; } @keyframes rl_spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } megamenu.less 0000604 00000025510 15245561425 0007242 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // VARIABLES & MIXINS // ------------------ // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/variables.less"; // Bootstrap mixins @import "../bootstrap/less/mixins.less"; // T3 Base variables @import "variables.less"; // // BASIC STYLE FOR MEGAMENU // ------------------------- .t3-megamenu { // THE MEGAMENU //-------------------------------------------- // Global Menu Inner padding // ------------------------- .mega-inner { .clearfix(); } // Inner Padding for 1 column .col-lg-12 .mega-inner, .col-md-12 .mega-inner, .col-sm-12 .mega-inner, .col-xs-12 .mega-inner { } // Menu Grids // ---------- .row { } .row + .row { } // The Dropdown // ------------ .mega > .mega-dropdown-menu { min-width: @t3-mega-dropdown-min-width; display: none; } .mega.open > .mega-dropdown-menu, .mega.dropdown-submenu.open > .mega-dropdown-menu { display: block; } // Dropdown Sub Menus // ------------------ .dropdown-submenu { } // The Group // --------- .mega-group { .clearfix(); } // Group Title // We use BS3 "dropdown-header" //.mega-nav .mega-group > .mega-group-title, //.dropdown-menu .mega-nav .mega-group > .mega-group-title, //.dropdown-menu .active .mega-nav .mega-group > .mega-group-title .dropdown-header, .mega-nav .mega-group > .dropdown-header, .dropdown-menu .mega-nav .mega-group > .dropdown-header, .dropdown-menu .active .mega-nav .mega-group > .dropdown-header { margin: 0; padding: 0; background: @t3-module-title-bg; color: @t3-module-title-color; font-size: @font-size-large; line-height: normal; // Link states &:hover, &:active, &:focus { background: inherit; color: inherit; } } // Group Content .mega-group-ct { margin: 0; padding: 0; .clearfix(); } // Nav in Megamenu // --------------- .mega-col-nav { } // Inner padding .mega-col-nav .mega-inner { } // Inner padding for nav in 1 column .col-lg-12.mega-col-nav .mega-inner, .col-md-12.mega-col-nav .mega-inner, .col-sm-12.mega-col-nav .mega-inner, .col-xs-12.mega-col-nav .mega-inner { } .mega-group .col-lg-12.mega-col-nav .mega-inner, .mega-group .col-md-12.mega-col-nav .mega-inner, .mega-group .col-sm-12.mega-col-nav .mega-inner, .mega-group .col-xs-12.mega-col-nav .mega-inner { } // The Nav .mega-nav, .dropdown-menu .mega-nav { margin: 0; padding: 0; list-style: none; } .mega-nav > li, .dropdown-menu .mega-nav > li { list-style: none; margin-left: 0; } .mega-nav > li a, .dropdown-menu .mega-nav > li a { white-space: normal; display: block; padding: 5px; &:hover, &:focus { text-decoration: none; color: @dropdown-link-hover-color; background-color: @dropdown-link-hover-bg; } } .mega-nav > li .separator { display: block; padding: 5px; } // Nav in Group .mega-group > .mega-nav, .dropdown-menu .mega-group > .mega-nav { margin-left: -5px; margin-right: -5px; } .mega-group > .mega-nav > li, .dropdown-menu .mega-group > .mega-nav > li { } .mega-group .mega-nav > li a, .dropdown-menu .mega-group .mega-nav > li a { } // The caret .mega-nav .dropdown-submenu > a::after { margin-right: 5px; } // Modules in Megamenu // ------------------- .mega-col-module { } // Inner padding .mega-col-module .mega-inner { } // The module .t3-module { margin-bottom: @t3-global-margin / 2; } // Module Title .t3-module .module-title { .dropdown-header(); // Make the Module Title look like Dropdown Header margin-bottom: 5px; } // Module Content .t3-module .module-ct { margin: 0; padding: 0; } // The caption // ----------- .mega-caption { display: block; white-space: nowrap; } // The caret // --------- .nav .caret, .dropdown-submenu .caret, .mega-menu .caret { display: none; } // Show the caret on level 0 only .nav > .dropdown > .dropdown-toggle .caret { display: inline-block; } // The icon // -------- .nav [class^="icon-"], .nav [class*=" icon-"], .nav .fa { margin-right: 5px; } // Reset the margin on Input Group Addon .nav .input-group-addon [class^="icon-"], .nav .input-group-addon [class*=" icon-"], .nav .input-group-addon .fa { margin-right: 0; } // Menu alignment // -------------- .mega-align-left > .dropdown-menu { left: 0; } .mega-align-right > .dropdown-menu { left: auto; right: 0; } .mega-align-center > .dropdown-menu { left: 50%; .translate(-50%, 0); } .dropdown-submenu.mega-align-left > .dropdown-menu { left: 100%; } .dropdown-submenu.mega-align-right > .dropdown-menu { left: auto; right: 100%; } .mega-align-justify { position: static; } .mega-align-justify > .dropdown-menu { left: 0; margin-left: 0; top: auto; } // Menu tab // -------------- .mega-tab > div { position: relative; } .mega-tab > div > ul { width: @t3-mega-dropdown-min-width; } .mega-tab > div > ul > li { position: static; } .mega-tab > div > ul > li > .dropdown-menu{ position: absolute; top: 0; right: 0; bottom: 0; left: @t3-mega-dropdown-min-width; } .mega-tab > div > ul > li > .mega-dropdown-menu { border: none; box-shadow: none; } .mega-tab > div > ul > li > .mega-dropdown-menu > div { opacity: 1!important; margin-left: 0!important; transition: none!important; } // End } // // MEGAMENU Animation // -------------------------------------------------------------- @media (min-width: @grid-float-breakpoint) { .t3-megamenu.animate { .mega { > .mega-dropdown-menu { .backface-visibility(hidden); opacity: 0; } &.animating > .mega-dropdown-menu { .transition(all 400ms); display: block; } &.open > .mega-dropdown-menu, &.animating.open > .mega-dropdown-menu { opacity: 1; } } &.zoom { .mega { > .mega-dropdown-menu { .scale(0, 0); .transform-origin(20% 20%); } &.open > .mega-dropdown-menu { .scale(1, 1); } } //special case for level 0 .level0 > .mega-align-center { > .mega-dropdown-menu { -webkit-transform: scale(0, 0) translate(-50%, 0); -ms-transform: scale(0, 0) translate(-50%, 0); transform: scale(0, 0) translate(-50%, 0); .transform-origin(0% 20%); } &.open > .mega-dropdown-menu { -webkit-transform: scale(1, 1) translate(-50%, 0); -ms-transform: scale(1, 1) translate(-50%, 0); transform: scale(1, 1) translate(-50%, 0); } } } &.elastic { .mega { & > .mega-dropdown-menu { .scale(0, 1); .transform-origin(10% 0); } &.open > .mega-dropdown-menu { .scale(1, 1); } } .level0 { > .mega > .mega-dropdown-menu { .scale(1, 0); } .open > .mega-dropdown-menu { .scale(1, 1); } > .mega-align-center { > .mega-dropdown-menu { transform: scale(1,0) translate(-50%, 0); -webkit-transform: scale(1,0) translate(-50%, 0); -ms-transform: scale(1,0) translate(-50%, 0); } &.open > .mega-dropdown-menu { transform: scale(1,1) translate(-50%, 0); -webkit-transform: scale(1,1) translate(-50%, 0); -ms-transform: scale(1,1) translate(-50%, 0); } } } } &.slide { .mega { /* Level 0 */ &.animating > .mega-dropdown-menu { overflow: hidden; } > .mega-dropdown-menu { > div { .transition(all 400ms); .backface-visibility(hidden); margin-top: -30%; } } &.open > .mega-dropdown-menu { > div { margin-top: 0%; } } /* Level > 0 */ .mega > .mega-dropdown-menu { min-width: 0; > div { min-width: 200px; margin-top: 0; margin-left: -500px; width: 100%; } } .mega.open > .mega-dropdown-menu > div { margin-left: 0; } } } } } // // MEGAMENU RESPONSIVE // -------------------------------------------------------------- @media (max-width: @grid-float-breakpoint-max) { .t3-megamenu { // THE MEGAMENU //------------------------------------------------------ // Global Menu Inner padding // ------------------------- .mega-inner { .clearfix(); } // Inner Padding for 1 column .col-lg-12 .mega-inner, .col-md-12 .mega-inner, .col-sm-12 .mega-inner, .col-xs-12 .mega-inner { } // Menu Grids // ---------- .row, .mega-dropdown-menu, .row [class*="col-lg-"], .row [class*="col-md-"], .row [class*="col-sm-"], .row [class*="col-xs-"] { width: 100% !important; min-width: 100% !important; left: 0 !important; margin-left: 0 !important; -webkit-transform: none !important; -ms-transform: none !important; transform: none !important; } // Hidden when collapse .hidden-collapse, .always-show .caret, .always-show .dropdown-submenu > a:after .sub-hidden-collapse > .nav-child, .sub-hidden-collapse .caret, .sub-hidden-collapse > a:after { display: none !important; } } // Hide the captions too .mega-caption { display: none !important; } // MEGAMENU RTL //------------------------------------------------------ // html[dir="rtl"] { .t3-megamenu { // Menu Grids // ---------- .row, .mega-dropdown-menu, .row [class*="col-lg-"], .row [class*="col-md-"], .row [class*="col-sm-"], .row [class*="col-xs-"] { left: auto; right: 0 !important; margin-right: 0 !important; } } } // End } rtl/template.less 0000604 00000000000 15245561425 0010043 0 ustar 00 rtl/style.less 0000604 00000000623 15245561425 0007403 0 ustar 00 // RTL STYLES // ------------------------------------------------------ // Article Images // -------------- article img[align=left], .img_caption.left, .pull-left.item-image { margin: 0 @gridGutterWidth @T3globalMargin 0; } article img[align=right], .img_caption.right, .pull-right.item-image { margin: 0 0 @T3globalMargin @gridGutterWidth; } .languageswitcherload { ul { float: left; } } rtl/joomla.less 0000604 00000000325 15245561425 0007523 0 ustar 00 // --------------------------------------------------------- // SMART SEARCH // --------------------------------------------------------- .off-canvas body > .autocompleter-choices { width: 0px; left: auto; } vars.less 0000604 00000002271 15245561425 0006416 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // VARIABLES & MIXINS // ------------------ // Prevent Bootstrap Upgrading errors @import "../../../plugins/system/t3/base/bootstrap/less/variables.less"; // Prevent T3 Upgrading errors @import "../../../plugins/system/t3/base/less/variables.less"; // Template variables @import "variables.less"; // Modify this for custom colors, font-sizes, etc // Bootstrap mixins @import "../../../plugins/system/t3/base/bootstrap/less/mixins.less"; // T3 mixins @import "../../../plugins/system/t3/base/less/mixins.less"; joomla.less 0000604 00000047753 15245561425 0006742 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // --------------------------------------------------------- // GENERIC ARTICLE STYLES // --------------------------------------------------------- // Articles Layout // --------------------------------------------------------- .blog { } // Home Blog .blog-featured { } // Leading Article Rows .items-leading { } .items-leading .leading { margin-bottom: @T3globalMargin * 2; } // Article Rows .items-row { } .items-row .item { margin-bottom: @T3globalMargin * 2; } // Divider .divider-vertical { margin: 0 0 (@T3globalMargin * 2); border: 0; border-top: 1px solid @hrBorder; border-bottom: 1px solid @white; } // Article Aside // ------------- .article-aside { color: @grayLight; font-size: @T3smallFontSize; margin-bottom: @T3globalMargin; } .article-info { margin: 0; width: 90%; a { // Link states &:hover, &:focus, &:active { } } .article-info-term { display: none; } dd { float: left; margin-left: 0; margin-right: 10px; white-space: nowrap; span { font-weight: bold; } } } // Author .createdby { } // Category Name .category-name { } // URL .article-url { } // Publish Date .published { } // Modified Date .modifydate { } // Article Desciption .contentdescription { } .contentdescription p { } // Extra fields // ------------------------- .fields-container { dd { border-bottom: 1px dotted darken(@grayLighter, 5%); padding: (@T3globalMargin / 3) 0; .field-label { display: inline-block; font-weight: bold; padding-right: @T3globalMargin; } &:last-child { border-bottom: 0; } } } // Article Footer // -------------- .article-footer { color: @grayLight; font-size: @T3smallFontSize; margin-bottom: @T3globalMargin; } // Article Images // -------------- article img[align=left], .img_caption.left, .pull-left.item-image { margin: 0 @gridGutterWidth @T3globalMargin 0; } article img[align=right], .img_caption.right, .pull-right.item-image { margin: 0 0 @T3globalMargin @gridGutterWidth; } .img-intro-none, .img-intro-left, .img-intro-right, .img-fulltext-none, .img-fulltext-left, .img-fulltext-right, .img_caption { position: relative; } .img-intro-none, .img-intro-left, .img-intro-right, .img-fulltext-none, .img-fulltext-left, .img-fulltext-right, .img_caption { margin-bottom: @T3globalMargin; max-width: 100%; } .img-fulltext-left { float: left; margin-right: @gridGutterWidth; } .img-fulltext-right { float: right; margin-left: @gridGutterWidth; } .img-intro-none img, .img-intro-left img, .img-intro-right img, .img-fulltext-none img, .img-fulltext-left img, .img-fulltext-right img { margin: 0; } // Image caption .img_caption img { margin-bottom: 1px !important; } .img_caption p.img_caption { background: @grayLighter; color: @gray; font-size: @T3smallerFontSize; width: 100%; margin: 0; padding: 5px; text-align: center; .box-sizing(border-box); clear: both; } // Article Actions // --------------- article aside .btn-group { .dropdown-menu { } > .dropdown-toggle, > .dropdown-toggle:hover, > .dropdown-toggle:active, > .dropdown-toggle:focus { background: transparent; border: 0; padding: 0; .box-shadow(none); } } // --------------------------------------------------------- // COMMON JOOMLA STYLE // --------------------------------------------------------- // Login // --------------------------------------------------------- .login h1 { } .login_form fieldset, .login fieldset { padding: 15px 0 0; } .login_form fieldset p, .login fieldset p { margin: 0 0 5px; } .login_form label, .login label { display: block; font-weight: bold; } .login-fields { margin: 0 0 10px; } .login_form .input, .login_form .inputbox, .login-fields .required { margin-left: 10px; width: 150px; } .login_form .remember .input, .login_form .remember .inputbox { width: 20px; } .login_form .btn, .login_form .button, .login button { } // Register // --------------------------------------------------------- .form-register { fieldset { padding: 0 0 10px; } p { margin: 0 0 5px; } p.form-des { margin: 15px 0; } label { display: block; float: left; font-weight: bold; text-align: right; width: 130px; } .input, .inputbox { margin-left: 10px; width: 200px; } .btn, .button { margin-left: 140px; } } .registration fieldset dt { margin-right: 5px; } .admintable textarea { max-width: 90% !important; resize: none; } // Mail to Windows // --------------------------------------------------------- #mailto-window { background: #fff; margin: 10px 0 20px; padding: 0; position: relative; h2 { margin-top: 0; margin-bottom: 20px; } .mailto-close { background: #FFF; background: -moz-linear-gradient(bottom, #ccc, #f0f0f0); background: -webkit-linear-gradient(bottom, #ccc, #f0f0f0); border: 1px solid #ccc; border-radius: 3px; color: #666; font-size: 92%; padding: 2px 5px; position: absolute; top: -10px; right: 0px; text-shadow: 1px 1px 0 #f0f0f0; } .mailto-close a { color: #666; } .mailto-close:hover { border-color: #999; box-shadow: 0 0 3px rgba(0,0,0,0.2); } } #mailtoForm { .formelm { padding: 5px 0; vertical-align: middle; overflow: hidden; } .formelm label { display: inline-block; float: left; font-weight: bold; vertical-align: middle; width: 100px; } p { margin-top: 20px; } .input, .inputbox { width: 65%; } .btn, .button, button { margin-right: 5px; } } // User // --------------------------------------------------------- .user-details { padding: 10px 0; p { margin: 0 0 5px; } label { display: block; float: left; font-weight: bold; text-align: right; width: 130px; } .input, .inputbox { margin-left: 10px; width: 200px; } .btn, button { margin-left: 140px; } .paramlist { .paramlist_key { padding: 0 0 5px; width: 130px; } .paramlist_value { padding: 0 0 5px; } } .user_name span { font-weight: bold; padding-left: 10px; } } // Reset & Remind // -------------- .reset .form-validate p, .remind .form-validate p { background: @grayLighter; border: 1px solid @T3borderColor; margin-bottom: @T3globalMargin; padding: (@T3globalPadding / 2) @T3globalPadding; .border-radius (@baseBorderRadius); } .reset .form-validate fieldset dl, .remind .form-validate fieldset dl { margin: 0; } .reset .form-validate fieldset dt, .remind .form-validate fieldset dt { margin: 4px 0 0 0; } // Profile //--------- .profile .dl-horizontal { dd { } dt { } } // Search // --------------------------------------------------------- .search { } .searchintro { } // Search Form // ----------- #searchForm { padding: (@T3globalPadding / 2) @T3globalPadding; border: 1px solid @T3borderColor; background: @grayLighter; .border-radius (@baseBorderRadius); .clearfix(); fieldset { margin: @T3globalMargin 0; } legend { margin-bottom: @T3globalMargin / 2; } .phrases-box input[type="radio"] { vertical-align: top; margin-top: 3px; } } #search-form { ul#finder-filter-select-list { margin-left: 0; li { list-style: none; padding: (@T3globalPadding / 2) 0; label { width: 150px; } } } } .phrases-box input, .phrases-box label, .form-limit input, .form-limit label, .only label { display: inline-block; margin-right: 10px; } .phrases-box input { margin: 0; } // Search Result // ------------- .search-results { margin-top: @T3globalMargin; // Title .result-title { font-size: @T3biggerFontSize; margin-top: @T3globalMargin; } // Category .result-category { font-size: @T3smallerFontSize; color: @grayLight; } // Result Text .result-text { margin-top: 5px; margin-bottom: 5px; } // Date .result-created { font-size: @T3smallerFontSize; color: @grayLight; } // Higlight .highlight { } } // Contact // --------------------------------------------------------- .contact {} .contact .accordion-heading .accordion-toggle { font-weight: bold; } // List contact .contact-category { ul.category { border-top: 0; overflow: hidden; li.row-fluid { border: 1px solid @gray-lighter; width: 100%; margin-right: 0; margin-left: 0; .clearfix(); & > div { margin: 0; } } } .cat-children { ul { border: 0; border-top: 1px solid #ddd; list-style: none; margin: 10px 0 0 0; padding: 0; li { background: transparent; border-bottom: 1px solid #ddd; padding: 10px 0; .item-title { border-left: 1px dotted @gray-light; display: block; font-size: 14px; font-weight: 600; padding: 0 0 0 15px; margin-left: 20px; position: relative; &:after { border-top: 1px dotted @gray-light; display: block; content: ""; position: absolute; left: 0; top: 8px; height: 1px; width: 10px; } } li .item-title { margin-left: 40px; } li li .item-title { margin-left: 60px; } li li li .item-title { margin-left: 80px; } &:last-child { border: 0; } } } } } // Archive // --------------------------------------------------------- #archive-items > li { line-height: normal; margin: 0; overflow: visible; padding: 0; } #archive-items div.intro { clear: both; overflow: hidden; } // Category List // --------------------------------------------------------- .categories-list { } .category-desc { } // Sub Category List // ----------------- .category-item { margin-top: @T3globalMargin; .clearfix(); .page-header { line-height: normal; padding-top: @T3globalPadding / 2; padding-bottom: @T3globalPadding / 2; margin-bottom: @T3globalMargin; } // Sub Categories .category-item { margin-left: @fluidGridGutterWidth; } } // News Feeds // --------------------------------------------------------- // Feed categories .newsfeed-category, .newsfeed { > h2 { border-bottom: 1px solid @T3borderColor; padding-bottom: @T3globalPadding; margin-bottom: @T3globalMargin; margin-top: 0; } .category-desc { margin-bottom: @T3globalMargin; } .category { li { .clearfix(); } } } // Feeds item .newsfeed { > h2 { border-bottom: 1px solid @T3borderColor; padding-bottom: @T3globalPadding; margin-bottom: @T3globalMargin; margin-top: 0; } .feed-description { margin-bottom: @T3globalMargin; font-size: @T3biggerFontSize; } .feed-item-description .feed-description { font-size: @baseFontSize; } ol li > a { font-weight: bold; font-size: @T3biggerFontSize; } } // Edit Content // --------------------------------------------------------- .edit { fieldset { } fieldset legend { } textarea { .box-sizing (border-box); } } .edit.item-page { fieldset { .form-actions { clear: both; margin-top: @T3globalMargin*2; } } } .com_media #imageForm #upbutton { margin-top: 5px; } // Editor Buttons // -------------- #editor-xtd-buttons { } .button2-left, .button2-left div { float: left; } .button2-right, .button2-right div { float: right; } .button2-left { margin: 5px 5px 0 0; } .button2-right { margin: 5px 0 0 5px; } .button2-left a, .button2-right a, .button2-left span, .button2-right span { background: @grayLighter; border: 1px solid darken(@grayLighter, 5%); color: @grayLight; cursor: pointer; display: block; float: left; padding: 2px 10px; border-radius: @baseBorderRadius; } .button2-left span, .button2-right span { color: @grayLight; cursor: default; } .button2-left .page a, .button2-right .page a, .button2-left .page span, .button2-right .page span { padding: 0 6px; } .button2-left a:hover, .button2-right a:hover { background: darken(@grayLighter, 5%); color: @grayDark; text-decoration: none; } .button2-left { .image { } .readmore { } .pagebreak { } } .control-group a.modal { position: inherit; width: auto !important; margin-left: 0 !important; top: auto !important; } // Calendar Button // --------------- .controls img.calendar { cursor: pointer; margin-left: 5px; } // Upload image popup // ------------------- #imageForm #upbutton { margin-top: -18px; } .view-imagesList { body { padding-top: 0; } .t3-mainbody { padding: 0; } .manager.thumbnails { overflow: hidden; li { float: left; margin: 0 10px 20px; } } } // Addmin list table // ------------------- table.adminlist th a { color: @linkColor; } // --------------------------------------------------------- // CONTENT NAVIGATIONS // --------------------------------------------------------- // Pagebreak Nav // -------------- .article-content .pagination { ul { border-left: 1px solid @T3borderColor; } li { float: left; padding: (@T3globalPadding / 2) @T3globalPadding; line-height: normal; border: 1px solid @T3borderColor; border-left: 0; // Hover state &:hover { } } li a { border: 0; text-decoration: none; background-color: transparent; line-height: normal; padding: 0; // Link States &:hover, &:focus, &:active { } } } .pagenavcounter { margin: 0 0 @T3globalMargin; font-weight: bold; } // PageBreak Index // --------------- #article-index { float: right; margin: 0 0 @T3globalMargin @T3globalMargin; padding: 10px; width: 30%; border: 1px solid @T3borderColor; .border-radius (@baseBorderRadius); ul { margin: 0 0 0 20px; } } // Articles Navigation // ------------------- .pagenav { margin: 0; padding: 0; list-style: none; li { margin: 0; padding: 0; float: left; } li.pagenav-prev { margin-right: 10px; } li.pagenav-next { } li a { padding: (@T3globalPadding / 2) @T3globalPadding; line-height: normal; border: 1px solid @T3borderColor; .border-radius (@baseBorderRadius); &:hover, &:active, &:focus { background-color: @navbarLinkBackgroundHover; color: @navbarLinkColorHover; } } } // Pagination // ---------- .counter { float: right; line-height: 1; margin: (@T3globalMargin / 2) 0; text-align: right; } // Items More // ----------- .items-more { h3 { margin: 0 0 5px; } ol { } } // Back Buttons // ----------- .back_button a { display: block; margin: 10px 0; // Link states &:hover, &:focus, &:active { } } // Form Control // ------------ .filters { margin: (@T3globalMargin / 2) 0 5px; } .display-limit { margin: (@T3globalMargin / 2) 0 5px; } .filters .filter-search, .filters .display-limit { float: left; width: 50%; } .filters .display-limit { float: right; text-align: right; } // --------------------------------------------------------- // MESSAGES & NOTIFICATIONS // --------------------------------------------------------- // Messages // --------------------------------------------------------- #system-message { dt { font-weight: bold; } dd { font-weight: bold; } dd.message ul, dd.error ul, dd.notice ul { margin: 0; padding: 0; } dd.message ul li, dd.error ul li, dd.notice ul li { background: none; margin: 0; padding: 5px; } } // System Standard Messages #system-message dd.message ul { } // System Error Messages .error { } .error h2 { } #system-message dd.error ul { } // System Notice Messages #system-message dd.notice ul { } // Tooltips // --------------------------------------------------------- .tip-wrap { background: #fff6df; border: 1px solid #fb3; .border-radius (5px); .box-shadow (0 0 3px rgba(0,0,0,.4)); max-width: 300px; z-index: 999; } .tip-title { border-bottom: 1px solid #fb3; font-weight: bold; padding: 5px 10px; } .tip-text { font-size: @baseFontSize; margin: 0; padding: 5px 10px; } .hasTip img { border: none; margin: 0 5px 0 0; } // --------------------------------------------------------- // JOOMLA 3.0 EXTENDING BOOTSTRAP // --------------------------------------------------------- // Specific Widths .width-10 { width: 10px; } .width-20 { width: 20px; } .width-30 { width: 30px; } .width-40 { width: 40px; } .width-50 { width: 50px; } .width-60 { width: 60px; } .width-70 { width: 70px; } .width-80 { width: 80px; } .width-90 { width: 90px; } .width-100 { width: 100px; } // Specific Heights .height-10 { height: 10px; } .height-20 { height: 20px; } .height-30 { height: 30px; } .height-40 { height: 40px; } .height-50 { height: 50px; } .height-60 { height: 60px; } .height-70 { height: 70px; } .height-80 { height: 80px; } .height-90 { height: 90px; } .height-100 { height: 100px; } // iFrames .iframe-bordered { border: 1px solid @tableBorder; } // Input Prepend Chosen Select Boxes .input-prepend .chzn-container-single .chzn-single { border-color: @inputBorder; height: 26px; -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } .input-prepend .chzn-container-active .chzn-single-with-drop { -webkit-border-radius: 0 3px 0 0; -moz-border-radius: 0 3px 0 0; border-radius: 0 3px 0 0; } .input-prepend .chzn-container-single .chzn-drop{ border-color: @inputBorder; } // Chosen proper wrapping in Bootstrap btn-group .btn-group .chzn-results { white-space: normal; } //Language .languageswitcherload { float: right; width: 100%; .mod-languages { text-align: right; } } // PRIVACY COMPONENT // -------------------------------------------------- #jform_privacyconsent_privacy-lbl, #jform_consentbox-lbl , #jform_terms_terms-lbl, #jform_profile_tos-lbl { a.modal { border-radius: 0; box-shadow: none; border: none; } } // Popup article #modal-jform_consentbox, #modal-consentbox { top: 5%; display: block; z-index: 1050; left: 50%; width: 80%; position: fixed; margin-left: -40%; background: #fff; border-radius: @borderRadiusLarge; -webkit-border-radius: @borderRadiusLarge; -moz-border-radius: @borderRadiusLarge; box-shadow: 0 3px 7px rgba(0,0,0,0.3); -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3); -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3); background-clip: padding-box; -webkit-background-clip: padding-box; -moz-background-clip: padding-box; outline: none; padding: 0 !important; transform: none; bottom: auto; &.in { opacity: 1; display: block !important; } .modal-header { padding: 9px 15px; border-bottom: 1px solid #eee; } .modal-body { overflow-y: auto; width: 98%; position: relative; padding: 1%; } .iframe { max-height: 739px; } } #modal-jform_consentbox { .modal-body { max-height: 770px; } .iframe { max-height: 739px; } } #modal-consentbox { .modal-header { h3 { font-size: 26px; margin: 0; } } .modal-body { max-height: 220px; } .iframe { max-height: 200px; } } navigation-responsive.less 0000604 00000013636 15245561425 0012004 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // --------------------------------------------------------- // RESPONSIVE NAVIFATION FOR MOBILE // --------------------------------------------------------- @media (max-width: @navbarCollapseWidth) { // ------------------------------------------------------- // NAVIGATIONS ELEMENTS // ------------------------------------------------------- // BREADCRUMBS // ------------------------------------------------------- .t3-navhelper { margin-left: -20px; margin-right: -20px; } // ------------------------------------------------------- // JA MAIN MENU // ------------------------------------------------------- .t3-mainnav { background: @navbarBackground; border-top: 1px solid darken(@navbarBackground, 5%); height: auto; margin-left: -20px; margin-right: -20px; // Toggle Button //.navbar .btn-navbar { //margin-bottom: (@T3globalMargin / 2); //} .navbar .btn-navbar:hover { cursor: pointer; } // COLLAPSIBLE NAVBAR // ---------------------------------------------------- // The nav .nav-collapse { margin-top: (@T3globalMargin / 2); background: #fff; //#gradient > .vertical(@navbarBackground, @navbarBackgroundHighlight); } .nav-collapse .nav { margin: 0; } .nav-collapse .nav > li { } .nav-collapse .nav > li > a { margin-bottom: 0; } .nav-collapse .nav > li > span { padding: ((@navbarHeight - @T3globalPadding) / 2) @T3globalPadding; display: inline-block; } // Nav and dropdown links in navbar // ------------------------------- .nav-collapse .nav > li > a, .nav-collapse .dropdown-menu a { border-bottom: 1px solid @hrBorder; padding: (@T3globalPadding / 2) @T3globalPadding; font-weight: bold; //color: @navbarLinkColor; text-shadow: none; .border-radius(0); } .nav-collapse .dropdown-menu li + li a { margin-bottom: 0; } // Hover state .nav-collapse .nav > li > a:hover { background-color: @dropdownLinkBackgroundHover; background-image: none; color: @white; .reset-filter(); } // dropdown links // -------------- .nav-collapse .dropdown-menu a { border-top: 1px solid darken(@navbarBackground, 5%); border-bottom: 0; font-weight: normal; padding: (@T3globalPadding / 2) @T3globalPadding; .reset-filter(); } // Hover state .nav-collapse .dropdown-menu.open a, .nav-collapse .dropdown-submenu.open > a, .nav-collapse .dropdown-menu a:hover { background-color: @dropdownLinkBackgroundHover; background-image: none; color: @white; .reset-filter(); } // Dropdowns in the navbar // ----------------------- .nav-collapse .dropdown-menu { margin: 0; padding: 0; background-color: @navbarBackground; border: none; .border-radius(0); .box-shadow(none); } // Full width when fixed // --------------------- &.navbar-collapse-fixed-top, &.navbar-collapse-fixed-bottom { margin: 0; .nav-collapse { margin: 0; } } // End } // ------------------------------------------------------- // JA MAIN MENU (Inverted) // ------------------------------------------------------- .T3Navbar() when (@T3NavbarInverted = 1) { // Begin: Mixin Styling background: @grayDark; border-top: 1px solid @grayDark; // Toggle Button .navbar .btn-navbar { } // COLLAPSIBLE NAVBAR // ---------------------------------------------------- // The nav .nav-collapse { background: @grayDarker; color: @grayLighter; } // Nav and dropdown links in navbar // ------------------------------- .nav-collapse .nav > li > a, .nav-collapse .dropdown-menu a { border-bottom: 1px solid @gray; } // Hover state .nav-collapse .nav > li > a:hover, .nav-collapse .dropdown-menu a:hover { background-color: @dropdownLinkBackgroundHover; } // dropdown links // -------------- .nav-collapse .dropdown-menu a { border-top: 1px solid @gray; border-bottom: 0; } // Hover state .nav-collapse .dropdown-menu a:hover { background-color: @dropdownLinkBackgroundHover; } // Dropdowns in the navbar // ----------------------- .nav-collapse .dropdown-menu { background-color: @grayDark; } // End: Mixin Styling } .T3Navbar() when (@T3NavbarInverted = 0) { // Leave blank here because we will use the default style. } // Calling the styles .t3-mainnav { .T3Navbar(); } // ---------------------------------------------------- // MISC // ---------------------------------------------------- .t3-mainnav .navbar .nav > li > .dropdown-menu { // Hiding Menu and Divider in nav-collapse &:before, &:after, .divider { display: none; } } .t3-mainnav .customization { display: none; } // End Responsive } core.less 0000604 00000004065 15245561425 0006376 0 ustar 00 /* FONT AWESOME CORE * -------------------------- */ [class^="icon-"], [class*=" icon-"] { .icon-FontAwesome(); } [class^="icon-"]:before, [class*=" icon-"]:before { text-decoration: inherit; display: inline-block; speak: none; } /* makes the font 33% larger relative to the icon container */ .icon-large:before { vertical-align: -10%; font-size: 4/3em; } /* makes sure icons active on rollover in links */ a { [class^="icon-"], [class*=" icon-"] { display: inline; } } /* increased font size for icon-large */ [class^="icon-"], [class*=" icon-"] { &.icon-fixed-width { display: inline-block; width: 16/14em; text-align: right; padding-right: 4/14em; &.icon-large { width: 20/14em; } } } .icons-ul { margin-left: @icons-li-width; list-style-type: none; > li { position: relative; } .icon-li { position: absolute; left: -@icons-li-width; width: @icons-li-width; text-align: center; line-height: inherit; } } // allows usage of the hide class directly on font awesome icons [class^="icon-"], [class*=" icon-"] { &.hide { display: none; } } .icon-muted { color: @iconMuted; } .icon-light { color: @iconLight; } .icon-dark { color: @iconDark; } // Icon Borders // ------------------------- .icon-border { border: solid 1px @borderColor; padding: .2em .25em .15em; .border-radius(3px); } // Icon Sizes // ------------------------- .icon-2x { font-size: 2em; &.icon-border { border-width: 2px; .border-radius(4px); } } .icon-3x { font-size: 3em; &.icon-border { border-width: 3px; .border-radius(5px); } } .icon-4x { font-size: 4em; &.icon-border { border-width: 4px; .border-radius(6px); } } .icon-5x { font-size: 5em; &.icon-border { border-width: 5px; .border-radius(7px); } } // Floats & Margins // ------------------------- // Quick floats .pull-right { float: right; } .pull-left { float: left; } [class^="icon-"], [class*=" icon-"] { &.pull-left { margin-right: .3em; } &.pull-right { margin-left: .3em; } } template-responsive.less 0000604 00000003316 15245561425 0011452 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Template-Responsive.less // For phone and tablet devices // ------------------------------------------------------------- // VARIABLES & MIXINS // ------------------ @import "vars.less"; // Modify this for custom colors, font-sizes, etc // T3 GLOBAL STYLES RESPONSIVE // --------------------------- // Extend Responsive Grid @import "../../../plugins/system/t3/base/less/grid-ext-responsive.less"; // Global Typo @import "../../../plugins/system/t3/base/less/global-typo-responsive.less"; // Global Module @import "../../../plugins/system/t3/base/less/global-modules-responsive.less"; // Extended functions for T3 @import "../../../plugins/system/t3/base/less/t3-responsive.less"; // TEMPLATE RESPONSIVE // ------------------- // Responsive Typo core @import "typo-core-responsive.less"; // Responsive Navigations @import "navigation-responsive.less"; // Responsive Joomla! Styles @import "joomla-responsive.less"; // Responsive Typo @import "typo-responsive.less"; // Responsive Template Styles @import "style-responsive.less"; modules.less 0000604 00000010656 15245561425 0007121 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // // GENECRIC MODULE STYLE // -------------------------------------------------- .t3-module { background: @T3moduleBackground; color: @T3moduleColor; margin-bottom: @T3globalMargin * 2; // Module padding .module-inner { padding: @T3modulePadding; } } // Module Title // ------------ .module-title { background: @T3moduleTitleBackground; color: @T3moduleTitleColor; line-height: 30px; margin: 0 0 (@T3globalMargin / 2) 0; padding: @T3moduleTitlePadding; } // Module Content // -------------- .module-ct { background: @T3moduleContentBackground; color: @T3moduleContentColor; padding: @T3moduleContentPadding; .clearfix(); } // Module List // ----------- .t3-module { ul, ol { margin-left: 20px; } ul.unstyled, ol.unstyled, ul.nav, ol.nav { margin-left: 0; } } // // JOOMLA! MODULES // -------------------------------------------------- // Menu // ---- .module_menu { .nav { margin-bottom: @T3globalMargin; } .nav > li { border-top: 1px solid @hrBorder; } .nav > li > a { padding: 5px; } // No top border .nav > li:first-child { border-top: 0; } .nav > li:first-child > a { padding-top: 0; border-top: 0; } // Hover state .nav > li > a:hover { } // Active state .nav > li.active > a { } } // Login Form // ---------- #login-form { input[type="text"], input[type="password"] { width: 90%; } .btn-primary { } ul.unstyled { } #form-login-username { } #form-login-password { } #form-login-remember { } } // Advertisement // ------------- .bannergroup { } .banneritem { a { font-weight: bold; } } .bannerfooter { border-top: 1px solid @T3borderColor; font-size: @T3smallerFontSize; padding-top: @T3globalPadding / 2; text-align: right; } // Categories // ---------- .categories-module, ul.categories-module, .category-module, ul.category-module { margin: 0; li { list-style: none; padding: (@baseLineHeight / 2) 0; border-top: 1px solid @T3borderColor; // Remove border for first item &:first-child { border-top: 0; padding-top: 0; } } h4 { font-size: @baseFontSize; font-weight: normal; margin: 0; } } // News Feed // ---------- .feed { // Feed Title h4 { font-weight: bold; } // Feed list .newsfeed, ul.newsfeed { border-top: 1px solid @hrBorder; li {} .feed-link, h5.feed-link { font-size: @baseFontSize; font-weight: normal; margin: 0; } } } // Latest Users // ------------ .latestusers, ul.latestusers { margin-left: 0; li { background: @grayLighter; display: inline-block; padding: 5px 10px; .border-radius (@baseBorderRadius); } } // Stats // ------ .stats-module { dt, dd { display: inline-block; margin: 0; } dt { font-weight: bold; width: 35%; } dd { width: 60%; } } // Popular Tags div.tagspopular ul { display: block; margin: 0; padding: 0; list-style: none; overflow: hidden; } div.tagspopular ul li { color: @gray; display: inline-block; margin: 0 5px 5px 0; } div.tagspopular ul li a { background: @grayLighter; border-radius: 3px; color: @gray; display: block; padding: 2px 5px; } div.tagspopular ul li a:hover, div.tagspopular ul li a:focus, div.tagspopular ul li a:active { background: @linkColorHover; color: @white; text-decoration: none; } // Similar tags div.tagssimilar ul { margin: 0; padding: 0; list-style: none; } div.tagssimilar ul li { border-bottom: 1px solid @grayLighter; padding: 8px 0; } div.tagssimilar ul li a { color: @gray; } div.tagssimilar ul li a:hover, div.tagssimilar ul li a:focus, div.tagssimilar ul li a:active { color: @linkColorHover; } themes/dark/variables.less 0000604 00000004074 15245561425 0011624 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Global values // -------------------------------------------------- @T3BaseImagePath: "../../../images"; @T3ThemeImagePath: "@{T3BaseImagePath}/themes/dark"; // Scaffolding // ------------------------- @bodyBackground: @grayDarker; @textColor: @grayLighter; // Links // ------------------------- @linkColor: lighten(@blue, 20%); // Typography // ------------------------- @baseFontSize: 14px; @baseFontFamily: sans-serif; @headingsFontFamily: sans-serif; @headingsColor: @grayLighter; // empty to use BS default, @textColor // Navbar // ------------------------- @navbarLinkBackgroundActive: @blue; // Buttons // ------------------------- @btnBackground: @grayDark; @btnBackgroundHighlight: lighten(@grayDark, 10%); @btnBorder: darken(@grayDark, 10%); @btnPrimaryBackground: @blue; @btnPrimaryBackgroundHighlight: lighten(@blue, 10%); // Forms // ------------------------- @inputBackground: @grayDark; @inputBorder: @gray; @formActionsBackground: @grayDarker; // Hr border color // ------------------------- @hrBorder: @grayDark; // // T3 TEMPLATE STYLES // -------------------------------------------------- @T3borderColor: @grayDark; @T3NavbarInverted: 1; @T3SpotlightsInverted: 1; themes/dark/template.less 0000604 00000004414 15245561425 0011465 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // // GENERIC ARTICLE STYLES // --------------------------------------------------------- .page-header { border-bottom: 1px solid @grayDark; } // Page Subheader // -------------- .page-subheader { border-bottom: 1px solid @grayDark; } // Divider .divider-vertical { border-top: 1px solid @grayDarker; border-bottom: 1px solid @grayDark; } // --------------------------------------------------------- // HEADER // --------------------------------------------------------- // Logo Text // ---------- .logo-text h1 { color: @white; } .logo-text h1 a { color: @white; } // Taglines .logo-text .site-slogan { display: block; font-size: @baseFontSize; margin-top: 5px; } // Head Search // ----------- .head-search .input { background: url("@{T3ThemeImagePath}/ico/search.png") no-repeat 8px center; } /* focus state */ .head-search .input:focus { color: @white; } // // DEFAULT JOOMLA! MENU // ------------------------------------------------------ .module_menu .nav > li { border-top: 1px solid @grayDark; } // Active nav items .t3-mainnav.inverted .navbar .nav > .active > a, .t3-mainnav.inverted .navbar .nav > .active > a:hover, .t3-mainnav.inverted .navbar .nav > .active > a:focus { color: @white; #gradient > .vertical(lighten(@blue, 10%), @blue); } // Shitty .input-append .add-on, .input-prepend .add-on { background: #444; } .nav-tabs.nav-stacked > li > a, .pagination a, .pagination span { border-color: #444; } .pagination a:hover, .pagination .active a, .pagination .active span, .pagination a, .pagination span { background: #444; } .btn { text-shadow: none;} themes/dark/variables-custom.less 0000604 00000000001 15245561425 0013116 0 ustar 00 themes/green/home.less 0000604 00000002064 15245561425 0010760 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // HOME SPOTLIGHTS // --------------------------------------------------------- // Spotlight 1 // ----------- .home .t3-sl-1 { margin-top: -1px; // jumbotron .jumbotron { #gradient > .radial(lighten(@linkColor, 10%), @linkColor); color: @grayLighter; h1 { color: @white; } .btn-large { .buttonBackground(@grayDark, @grayDarker); } } } themes/green/variables.less 0000604 00000002151 15245561425 0011775 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Scaffolding // ------------------------- @bodyBackground: @white; @textColor: @grayDark; // Links // ------------------------- @linkColor: @green; // Typography // ------------------------- @baseFontSize: 14px; @baseFontFamily: sans-serif; @headingsFontFamily: sans-serif; // // ThemeMagic // ------------------------- @T3NavbarInverted: 0; @T3SpotlightsInverted: 0; themes/green/template-responsive.less 0000604 00000000000 15245561425 0014022 0 ustar 00 themes/green/template.less 0000604 00000002213 15245561425 0011637 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // --------------------------------------------------------- // FOOTER // --------------------------------------------------------- .t3-footer { background: @linkColor; color: @white; // links a { color: lighten(@linkColor,50%); } a:hover, a:active, a:focus { color: @white; } } // Foot Nav // -------- .t3-footnav .module-title { color: @white; } // Copyright // --------- .t3-copyright { border-top: 1px solid lighten(@linkColor,5%); } themes/green/variables-custom.less 0000604 00000000000 15245561425 0013274 0 ustar 00 themes/orange/home.less 0000604 00000002064 15245561425 0011133 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // HOME SPOTLIGHTS // --------------------------------------------------------- // Spotlight 1 // ----------- .home .t3-sl-1 { margin-top: -1px; // jumbotron .jumbotron { #gradient > .radial(lighten(@linkColor, 10%), @linkColor); color: @grayLighter; h1 { color: @white; } .btn-large { .buttonBackground(@grayDark, @grayDarker); } } } themes/orange/template.less 0000604 00000002213 15245561425 0012012 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // --------------------------------------------------------- // FOOTER // --------------------------------------------------------- .t3-footer { background: @linkColor; color: @white; // links a { color: lighten(@linkColor,50%); } a:hover, a:active, a:focus { color: @white; } } // Foot Nav // -------- .t3-footnav .module-title { color: @white; } // Copyright // --------- .t3-copyright { border-top: 1px solid lighten(@linkColor,5%); } themes/orange/variables.less 0000604 00000002152 15245561425 0012151 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Scaffolding // ------------------------- @bodyBackground: @white; @textColor: @grayDark; // Links // ------------------------- @linkColor: @orange; // Typography // ------------------------- @baseFontSize: 14px; @baseFontFamily: sans-serif; @headingsFontFamily: sans-serif; // // ThemeMagic // ------------------------- @T3NavbarInverted: 0; @T3SpotlightsInverted: 0; themes/orange/variables-custom.less 0000604 00000000000 15245561425 0013447 0 ustar 00 themes/red/variables-custom.less 0000604 00000000000 15245561425 0012746 0 ustar 00 themes/red/variables.less 0000604 00000002202 15245561425 0011444 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Scaffolding // ------------------------- @bodyBackground: @white; @textColor: @grayDark; // Links // ------------------------- @linkColor: @red; // Typography // ------------------------- @baseFontSize: 14px; @baseFontFamily: sans-serif; @headingsFontFamily: sans-serif; // // T3 TEMPLATE STYLES // -------------------------------------------------- @T3NavbarInverted: 1; @T3SpotlightsInverted: 0; themes/red/home.less 0000604 00000002064 15245561425 0010432 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // HOME SPOTLIGHTS // --------------------------------------------------------- // Spotlight 1 // ----------- .home .t3-sl-1 { margin-top: -1px; // jumbotron .jumbotron { #gradient > .radial(lighten(@linkColor, 10%), @linkColor); color: @grayLighter; h1 { color: @white; } .btn-large { .buttonBackground(@grayDark, @grayDarker); } } } themes/red/template.less 0000604 00000002213 15245561425 0011311 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // --------------------------------------------------------- // FOOTER // --------------------------------------------------------- .t3-footer { background: @linkColor; color: @white; // links a { color: lighten(@linkColor,50%); } a:hover, a:active, a:focus { color: @white; } } // Foot Nav // -------- .t3-footnav .module-title { color: @white; } // Copyright // --------- .t3-copyright { border-top: 1px solid lighten(@linkColor,5%); } typo-core.less 0000604 00000021175 15245561425 0007370 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // -------------------------------------------------- // TYPOGRAPHY // -------------------------------------------------- // BODY TEXT // ------------------------------------------------------ // Paragraphs // ---------- p { margin: 0 0 @T3globalMargin / 2; small, .small { font-size: @T3smallerFontSize; color: @grayLight; } } .lead { margin-bottom: @T3globalMargin; font-size: 20px; font-weight: 200; line-height: @baseLineHeight * 1.5; } // Emphasis & misc // --------------- small { font-size: 85%; // Ex: 14px base font * 85% = about 12px } strong { font-weight: bold; } em { font-style: italic; } cite { font-style: normal; } .muted { color: @grayLight; } a.muted:hover, a.muted:focus { color: darken(@grayLight, 10%); } .text-warning { color: @warningText; } a.text-warning:hover, a.text-warning:focus { color: darken(@warningText, 10%); } .text-error { color: @errorText; } a.text-error:hover, a.text-error:focus { color: darken(@errorText, 10%); } .text-info { color: @infoText; } a.text-info:hover, a.text-info:focus { color: darken(@infoText, 10%); } .text-success { color: @successText; } a.text-success:hover, a.text-success:focus { color: darken(@successText, 10%); } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .highlight { background-color: #FFC; font-weight: bold; padding: 1px 4px; } // HEADINGS // ------------------------------------------------------ h1, h2, h3, h4, h5, h6 { margin: (@T3globalMargin / 2) 0; font-family: @headingsFontFamily; font-weight: @headingsFontWeight; line-height: 1; color: @headingsColor; text-rendering: optimizelegibility; // Fix the character spacing for headings small { font-weight: normal; line-height: 1; color: @grayLight; } } h1 { font-size: @baseFontSize * 2.5; line-height: @baseLineHeight * 2; small { font-size: @baseFontSize * 2; } } h2 { font-size: @baseFontSize * 2; line-height: @baseLineHeight * 2; small { font-size: @baseFontSize * 1.5; } } h3 { font-size: @baseFontSize * 1.5; line-height: @baseLineHeight * 2; small { font-size: @baseFontSize + 2px; } } h4 { font-size: @baseFontSize + 2px; line-height: @baseLineHeight; small { font-size: @baseFontSize; } } h5 { font-size: @baseFontSize + 1px; line-height: @baseLineHeight; small { font-size: @baseFontSize - 2px; } } h6 { font-size: @baseFontSize; line-height: @baseLineHeight; } // TITLES // ------------------------------------------------------ // Page header // ----------- .page-header { border-bottom: 1px solid @T3borderColor; padding-bottom: @T3globalPadding; margin: 0 0 (@T3globalMargin * 2); } .page-title, .page-header h1 { line-height: 1; margin: 0; } // Page Subheader // -------------- .page-subheader { border-bottom: 1px solid @T3borderColor; margin: 0 0 @T3globalMargin; .clearfix(); } .page-subtitle, .page-subheader h2 { line-height: 1; margin: 0; } .page-header + .page-subheader { margin-top: -@T3globalMargin; //If there is page header, then omit the space before page subheader } // Article Header // -------------- .article-header { } .article-title, .article-header h1, { margin: 0 0 @T3globalMargin/2 0; line-height: 1; } // Smaller "Article Title" in Blog and List layout h2.article-title, .article-header h2 { } // Item Header // ----------- .item-title { font-weight: bold; } // LISTS // ------------------------------------------------------ // Unordered and Ordered lists // --------------------------- ul, ol { padding: 0; margin: 0 0 @T3globalMargin / 2 25px; } ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; } ul { list-style: disc; } ol { list-style: decimal; } li { line-height: @baseLineHeight; } // Remove default list styles ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } // Single-line list items ul.inline, ol.inline { margin-left: 0; list-style: none; > li { display: inline-block; .ie7-inline-block(); padding-left: 5px; padding-right: 5px; } } // Description Lists // ----------------- dl { margin-bottom: @baseLineHeight; } dt, dd { line-height: @baseLineHeight; } dt { font-weight: bold; } dd { margin-left: @T3globalMargin / 2; } // Horizontal layout (like forms) .dl-horizontal { .clearfix(); // Ensure dl clears floats if empty dd elements present dt { float: left; width: @horizontalComponentOffset - 20; clear: left; text-align: right; .text-overflow(); } dd { margin-left: @horizontalComponentOffset; } } // LABELS & BADGES // -------------------------------------------------- // Base classes .label, .badge { display: inline-block; padding: 2px 4px; font-size: @baseFontSize * .846; font-weight: bold; line-height: 14px; // ensure proper line-height if floated color: @white; vertical-align: baseline; white-space: nowrap; text-shadow: 0 -1px 0 rgba(0,0,0,.25); background-color: @grayLight; } // Set unique padding and border-radius .label { .border-radius(@baseBorderRadius); } .badge { padding-left: 9px; padding-right: 9px; .border-radius(@baseBorderRadius); } // Empty labels/badges collapse .label, .badge { &:empty { display: none; } } // Hover/focus state, but only for links a { &.label:hover, &.label:focus, &.badge:hover, &.badge:focus { color: @white; text-decoration: none; cursor: pointer; } } // Colors // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) .label, .badge { // Important (red) &-important { background-color: @errorText; } &-important[href] { background-color: darken(@errorText, 10%); } // Warnings (orange) &-warning { background-color: @orange; } &-warning[href] { background-color: darken(@orange, 10%); } // Success (green) &-success { background-color: @successText; } &-success[href] { background-color: darken(@successText, 10%); } // Info (turquoise) &-info { background-color: @infoText; } &-info[href] { background-color: darken(@infoText, 10%); } // Inverse (black) &-inverse { background-color: @grayDark; } &-inverse[href] { background-color: darken(@grayDark, 10%); } } // Quick fix for labels/badges in buttons .btn { .label, .badge { position: relative; top: -1px; } } .btn-mini { .label, .badge { top: 0; } } // Quick fix for labels/badges in page-header- NNTH .page-header { .label, .badge { vertical-align: middle; } } // MISC // ------------------------------------------------------ // Abbreviations and acronyms abbr[title], // Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257 abbr[data-original-title] { cursor: help; border-bottom: 1px dotted @grayLight; } abbr.initialism { font-size: 90%; text-transform: uppercase; } // Blockquotes // ----------- blockquote { padding: 0 0 0 15px; margin: 0 0 @T3globalMargin; border-left: 5px solid @grayLighter; p { margin-bottom: 0; font-size: @baseFontSize * 1.25; font-weight: 300; line-height: 1.25; } small { display: block; line-height: @baseLineHeight; color: @grayLight; &:before { content: '\2014 \00A0'; } } // Float right with text-align: right &.pull-right { float: right; padding-right: 15px; padding-left: 0; border-right: 5px solid @grayLighter; border-left: 0; p, small { text-align: right; } small { &:before { content: ''; } &:after { content: '\00A0 \2014'; } } } } // Quotes // ------ q:before, q:after, blockquote:before, blockquote:after { content: ""; } // Addresses // --------- address { display: block; margin-bottom: 0; font-style: normal; line-height: @baseLineHeight; } joomla-responsive.less 0000604 00000004760 15245561425 0011124 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // // TABLET // ------------------------------------------------------------- @media (min-width: 768px) and (max-width: 979px) { #search-form { .word a.btn { margin-top: @T3globalMargin/2; } } } // // MOBILE // ------------------------------------------------------------- @media (max-width: @navbarCollapseWidth) { .article-content { iframe { width: 100% !important; height: auto; } } .contact { .form-horizontal .control-label { &.email_copy { float: left; margin-right: 5px; } } .thumbnail.pull-right { width: 100%; float: none; img { width: 100%; } } .dl-horizontal dt { float: left; margin-right: 5px; } } .login-wrap { .login_form fieldset, .login fieldset{ padding-left: @T3globalPadding; } } } // // MOBILE // ------------------------------------------------------------- @media (max-width: 599px) { // // GENERIC ARTICLE STYLES // ----------------------------------------------------------- // Article Images // -------------- article img[align=left], .img_caption.left, article img[align=right], .img_caption.right, .img-fulltext-left, .img-fulltext-right { float: none !important; margin-left: 0; margin-right: 0; width: 100% !important; } a#advanced-search-toggle { margin-top: (@T3globalMargin / 2); } #search-form { .word { a.btn { margin-top: @T3globalMargin / 2; } } } } // // MOBILE // ------------------------------------------------------------- @media (max-width: 360px) { button.button { margin-top: (@T3globalMargin / 2); } #search-form { .word { button.btn, a.btn { margin-top: @T3globalMargin / 2; } } } } style-responsive.less 0000604 00000005222 15245561425 0010775 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ @media (max-width: @navbarCollapseWidth) { body { padding-top: 50px; } } // // MOBILE // ------------------------------------------------------------- @media (max-width: 767px) { // HEADER // --------------------------------------------------------- // Logo // ---- .logo { float: left !important; text-align: center; width: 100% !important; } // Head Search // ----------- .head-search { float: left !important; margin-top: @T3globalMargin; margin-left: 0 !important; width: 100% !important; form { float: none; } .input { width: 100%; .box-sizing(border-box); height: 30px; // focus state &:focus { width: 100%; } } } .t3-header .span8, .t3-header .span4 { width: 100% !important; margin-left: 0 !important; float: none; } .languageswitcherload{ float: left; .mod-languages { text-align: right; } } // SPOTLIGHTS // --------------------------------------------------------- .t3-sl { padding-bottom: @T3globalPadding; padding-top: @T3globalPadding; } // FOOTER // --------------------------------------------------------- .t3-footer { margin-left: -20px; margin-right: -20px; } // Footnav // ------- .t3-footnav { padding: @T3globalPadding 20px 0; font-size: @T3smallerFontSize; } .t3-footnav .module-title { font-size: @baseFontSize; font-weight: bold; } // Copyright // --------- .t3-copyright { padding: @T3globalPadding 20px (@T3globalPadding * 2); .clearfix(); } .copyright, .poweredby { float: none; display: inline-block; text-align: center; } .poweredby { margin-top: @T3globalMargin / 2; .t3-logo, .t3-logo-small { float: none; display: inline-block; } } //End } off-canvas.less 0000604 00000054632 15245561425 0007476 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org * @credits Mary Lou - http://tympanus.net/codrops/2013/08/28/transitions-for-off-canvas-navigations/ *------------------------------------------------------------------------------ */ // // VARIABLES & MIXINS // ------------------ // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/variables.less"; // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/mixins.less"; // T3 Base variables @import "variables.less"; // T3 Base mixins @import "mixins.less"; // // OFF-CANVAS // ------------------------------------- // Toggle Button // ------------------- .off-canvas-toggle { z-index: 100; } // The Wrapper // ------------------- html, body { height: 100%; } .noscroll { position: fixed; overflow-y: scroll; width: 100%; } .t3-wrapper { // Need a background (Usually @body-bg). Otherwise the sidebar will overlap. background: @body-bg; position: relative; left: 0; z-index: 99; -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; overflow: visible; &::after { position: absolute; top: 0; right: 0; width: 0; height: 0; background: rgba(0,0,0,0.2); content: ''; opacity: 0; -webkit-transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; z-index: 100; } } .t3-mainnav-android { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; &::after { -webkit-transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; } } .off-canvas-open { .t3-wrapper::after { width: 100%; height: 10000px; opacity: 1; -webkit-transition: opacity 0.5s; transition: opacity 0.5s; } .t3-mainnav-android::after { -webkit-transition: opacity 0.5s; transition: opacity 0.5s; } } // The Sidebar // ------------------- .t3-off-canvas { position: absolute; top: 0; left: 0; z-index: 100; visibility: hidden; width: @t3-off-canvas-width; height: 100%; overflow: hidden; -webkit-transition: all 0.5s; transition: all 0.5s; &::after { position: absolute; top: 0; right: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.2); content: ''; opacity: 1; -webkit-transition: opacity 0.5s; transition: opacity 0.5s; } } .off-canvas-right.t3-off-canvas { display: none; } .off-canvas-right .off-canvas-right.t3-off-canvas { display: block; } html[dir="ltr"] .off-canvas-right.t3-off-canvas { left: auto; right: 0; } .off-canvas-open { .t3-off-canvas::after { width: 0; height: 0; opacity: 0; -webkit-transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s; } .off-canvas-current { visibility: visible; } .t3-off-canvas { overflow-y: auto; } } // // OFF-CANVAS CONTENT STYLES // ------------------------------------- .t3-off-canvas { // Generic // ----------------------------------- background: @t3-off-canvas-background; color: @t3-off-canvas-text-color; // Header // ----------------------------------- .t3-off-canvas-header { background: @t3-off-canvas-header-background; color: @t3-off-canvas-header-text-color; padding: @padding-base-vertical @padding-base-horizontal; // Title h2 { margin: 0; } } // Close Button .close { } // Body // ---------------------------------- .t3-off-canvas-body { padding: @padding-base-vertical @padding-base-horizontal; // Links // ------------ a { color: @t3-off-canvas-link-color; &:hover, &:focus { color: @t3-off-canvas-link-hover-color; } &:focus { .tab-focus(); } } // Navigations // ------------ .nav { } // Dropdown Menu // Always show Dropdown Menu in Off-Canvas Sidebar .dropdown-menu { position: static; float: none; display: block; width: 100%; padding: 0; border: 0; .box-shadow(none); } // Modules // ------------ .t3-module { } // End Off-Canvas Body } // End Off-Canvas Content Styles } // // OFF-CANVAS EFFECTS // ------------------------------------- // Effect 1: Slide in on top // ------------------------- .off-canvas-effect-1.t3-off-canvas { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .off-canvas-effect-1.off-canvas-open .off-canvas-effect-1.t3-off-canvas { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .off-canvas-effect-1.t3-off-canvas::after { display: none; } // off-canvas on right side .off-canvas-right.off-canvas-effect-1.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } // Effect 2: Reveal // ---------------- .off-canvas-effect-2.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-2.t3-off-canvas { z-index: 1; } .off-canvas-effect-2.off-canvas-open .off-canvas-effect-2.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; } .off-canvas-effect-2.t3-off-canvas::after { display: none; } // off-canvas on right side .off-canvas-right.off-canvas-effect-2.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } // Effect 3: Push // -------------- .off-canvas-effect-3.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-3.t3-off-canvas { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .off-canvas-effect-3.off-canvas-open .off-canvas-effect-3.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; } .off-canvas-effect-3.t3-off-canvas::after { display: none; } // off-canvas on right side .off-canvas-right.off-canvas-effect-3.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } .off-canvas-right.off-canvas-effect-3.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } // Effect 4: Slide along // --------------------- .off-canvas-effect-4.off-canvas-open .t3-wrapper, .off-canvas-effect-4.off-canvas-open .t3-mainnav-android { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-4.t3-off-canvas { z-index: 1; -webkit-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); } .off-canvas-effect-4.off-canvas-open .off-canvas-effect-4.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .off-canvas-effect-4.t3-off-canvas::after { display: none; } // off-canvas on right side .off-canvas-right.off-canvas-effect-4.off-canvas-open .t3-wrapper, .off-canvas-right.off-canvas-effect-4.off-canvas-open .t3-mainnav-android { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } .off-canvas-right.off-canvas-effect-4.t3-off-canvas { -webkit-transform: translate3d(50%, 0, 0); transform: translate3d(50%, 0, 0); } // Effect 5: Reverse slide out // --------------------------- .off-canvas-effect-5.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-5.t3-off-canvas { z-index: 1; -webkit-transform: translate3d(50%, 0, 0); transform: translate3d(50%, 0, 0); } .off-canvas-effect-5.off-canvas-open .off-canvas-effect-5.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } // off-canvas on right side .off-canvas-right.off-canvas-effect-5.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } .off-canvas-right.off-canvas-effect-5.t3-off-canvas { z-index: 1; -webkit-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); } // Effect 6: Rotate pusher // ----------------------- body.off-canvas-effect-6 { -webkit-perspective: 1500px; perspective: 1500px; } .off-canvas-effect-6 .t3-wrapper { -webkit-transform-origin: 0% 50%; transform-origin: 0% 50%; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; height: auto; overflow: hidden; } .off-canvas-effect-6.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0) rotateY(-15deg); transform: translate3d(@t3-off-canvas-width, 0, 0) rotateY(-15deg); } .off-canvas-effect-6.t3-off-canvas { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .off-canvas-effect-6.off-canvas-open .off-canvas-effect-6.t3-off-canvas { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .off-canvas-effect-6.t3-off-canvas::after { display: none; } .off-canvas-right.off-canvas-effect-6 .t3-wrapper { -webkit-transform-origin: 100% 50%; transform-origin: 100% 50%; } .off-canvas-right.off-canvas-effect-6.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0) rotateY(15deg); transform: translate3d(-@t3-off-canvas-width, 0, 0) rotateY(15deg); } .off-canvas-right.off-canvas-effect-6.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } // Effect 7: 3D rotate in // ---------------------- body.off-canvas-effect-7 { -webkit-perspective: 1500px; perspective: 1500px; -webkit-perspective-origin: 0% 50%; perspective-origin: 0% 50%; } .off-canvas-effect-7 .t3-wrapper { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-7.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-7.t3-off-canvas { -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg); transform: translate3d(-100%, 0, 0) rotateY(-90deg); -webkit-transform-origin: 100% 50%; transform-origin: 100% 50%; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-7.off-canvas-open .off-canvas-effect-7.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(-100%, 0, 0) rotateY(0deg); transform: translate3d(-100%, 0, 0) rotateY(0deg); } // off-canvas on right side body.off-canvas-effect-7.off-canvas-right { -webkit-perspective-origin: 100% 50%; perspective-origin: 100% 50%; } .off-canvas-right.off-canvas-effect-7.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } .off-canvas-right.off-canvas-effect-7.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg); transform: translate3d(100%, 0, 0) rotateY(90deg); -webkit-transform-origin: 0 50%; transform-origin: 0 50%; } .off-canvas-right.off-canvas-effect-7.off-canvas-open .off-canvas-right.off-canvas-effect-7.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0) rotateY(0deg); transform: translate3d(100%, 0, 0) rotateY(0deg); } // Effect 8: 3D rotate out // ----------------------- body.off-canvas-effect-8 { -webkit-perspective: 1500px; perspective: 1500px; -webkit-perspective-origin: 0% 50%; perspective-origin: 0% 50%; } .off-canvas-effect-8 .t3-wrapper { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-8.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-8.t3-off-canvas { -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg); transform: translate3d(-100%, 0, 0) rotateY(90deg); -webkit-transform-origin: 100% 50%; transform-origin: 100% 50%; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-8.off-canvas-open .off-canvas-effect-8.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(-100%, 0, 0) rotateY(0deg); transform: translate3d(-100%, 0, 0) rotateY(0deg); } .off-canvas-effect-8.t3-off-canvas::after { display: none; } // off-canvas on right side body.off-canvas-effect-8.off-canvas-right { -webkit-perspective-origin: 100% 50%; perspective-origin: 100% 50%; } .off-canvas-right.off-canvas-effect-8.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } .off-canvas-right.off-canvas-effect-8.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg); transform: translate3d(100%, 0, 0) rotateY(-90deg); -webkit-transform-origin: 0 50%; transform-origin: 0 50%; } .off-canvas-right.off-canvas-effect-8.off-canvas-open .off-canvas-right.off-canvas-effect-8.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0) rotateY(0deg); transform: translate3d(100%, 0, 0) rotateY(0deg); } // Effect 9: Scale down pusher // --------------------------- body.off-canvas-effect-9 { -webkit-perspective: 1500px; perspective: 1500px; } .off-canvas-effect-9 .t3-wrapper { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-9.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(0, 0, -@t3-off-canvas-width); transform: translate3d(0, 0, -@t3-off-canvas-width); } .off-canvas-effect-9.t3-off-canvas { opacity: 1; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .off-canvas-effect-9.off-canvas-open .off-canvas-effect-9.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .off-canvas-effect-9.t3-off-canvas::after { display: none; } // off-canvas on right side .off-canvas-right.off-canvas-effect-9.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } // Effect 10: Scale up // ------------------- body.off-canvas-effect-10 { -webkit-perspective: 1500px; perspective: 1500px; -webkit-perspective-origin: 0% 50%; perspective-origin: 0% 50%; } .off-canvas-effect-10.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-10.t3-off-canvas { z-index: 1; opacity: 1; -webkit-transform: translate3d(0, 0, -@t3-off-canvas-width); transform: translate3d(0, 0, -@t3-off-canvas-width); } .off-canvas-effect-10.off-canvas-open .off-canvas-effect-10.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } // off-canvas on right side body.off-canvas-effect-10.off-canvas-right { -webkit-perspective-origin: 100% 50%; perspective-origin: 100% 50%; } .off-canvas-right.off-canvas-effect-10.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } // Effect 11: Scale and rotate pusher // ---------------------------------- body.off-canvas-effect-11 { -webkit-perspective: 1500px; perspective: 1500px; } .off-canvas-effect-11 .t3-wrapper { height: auto; overflow: hidden; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-11.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(100px, 0, -600px) rotateY(-20deg); transform: translate3d(100px, 0, -600px) rotateY(-20deg); } .off-canvas-effect-11.t3-off-canvas { opacity: 1; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .off-canvas-effect-11.off-canvas-open .off-canvas-effect-11.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .off-canvas-effect-11.t3-off-canvas::after { display: none; } // off-canvas on right side .off-canvas-right.off-canvas-effect-11.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-100px, 0, -600px) rotateY(20deg); transform: translate3d(-100px, 0, -600px) rotateY(20deg); } .off-canvas-right.off-canvas-effect-11.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } // Effect 12: Open door // -------------------- body.off-canvas-effect-12 { -webkit-perspective: 1500px; perspective: 1500px; } .off-canvas-effect-12 .t3-wrapper { height: auto; overflow: hidden; -webkit-transform-origin: 100% 50%; transform-origin: 100% 50%; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-12.off-canvas-open .t3-wrapper { -webkit-transform: rotateY(-10deg); transform: rotateY(-10deg); } .off-canvas-effect-12.t3-off-canvas { opacity: 1; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .off-canvas-effect-12.off-canvas-open .off-canvas-effect-12.t3-off-canvas { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .off-canvas-effect-12.t3-off-canvas::after { display: none; } // off-canvas on right side .off-canvas-right.off-canvas-effect-12 .t3-wrapper { -webkit-transform-origin: 0 50%; transform-origin: 0 50%; } .off-canvas-right.off-canvas-effect-12.off-canvas-open .t3-wrapper { -webkit-transform: rotateY(10deg); transform: rotateY(10deg); } .off-canvas-right.off-canvas-effect-12.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } // Effect 13: Fall down // -------------------- body.off-canvas-effect-13 { -webkit-perspective: 1500px; perspective: 1500px; -webkit-perspective-origin: 0% 50%; perspective-origin: 0% 50%; } .off-canvas-effect-13.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-13.t3-off-canvas { z-index: 1; opacity: 1; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } .off-canvas-effect-13.off-canvas-open .off-canvas-effect-13.t3-off-canvas { -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; -webkit-transition-property: -webkit-transform; transition-property: transform; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); -webkit-transition-speed: 0.2s; transition-speed: 0.2s; } // off-canvas on right side body.off-canvas-effect-13.off-canvas-right { -webkit-perspective-origin: 100% 50%; perspective-origin: 100% 50%; } .off-canvas-right.off-canvas-effect-13.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } // Effect 14: Delayed 3D rotate // ---------------------------- body.off-canvas-effect-14 { -webkit-perspective: 1500px; perspective: 1500px; -webkit-perspective-origin: 0% 50%; perspective-origin: 0% 50%; } .off-canvas-effect-14 .t3-wrapper { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-14.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(@t3-off-canvas-width, 0, 0); transform: translate3d(@t3-off-canvas-width, 0, 0); } .off-canvas-effect-14.t3-off-canvas { -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg); transform: translate3d(-100%, 0, 0) rotateY(90deg); -webkit-transform-origin: 0% 50%; transform-origin: 0% 50%; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } .off-canvas-effect-14.off-canvas-open .off-canvas-effect-14.t3-off-canvas { -webkit-transition-delay: 0.1s; transition-delay: 0.1s; -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; -webkit-transition-property: -webkit-transform; transition-property: transform; -webkit-transform: translate3d(-100%, 0, 0) rotateY(0deg); transform: translate3d(-100%, 0, 0) rotateY(0deg); } // off-canvas on right side body.off-canvas-effect-14.off-canvas-right { -webkit-perspective-origin: 100% 50%; perspective-origin: 100% 50%; } .off-canvas-right.off-canvas-effect-14.off-canvas-open .t3-wrapper { -webkit-transform: translate3d(-@t3-off-canvas-width, 0, 0); transform: translate3d(-@t3-off-canvas-width, 0, 0); } .off-canvas-right.off-canvas-effect-14.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg); transform: translate3d(100%, 0, 0) rotateY(-90deg); -webkit-transform-origin: 100% 50%; transform-origin: 100% 50%; } .off-canvas-right.off-canvas-effect-14.off-canvas-open .off-canvas-right.off-canvas-effect-14.t3-off-canvas { -webkit-transform: translate3d(100%, 0, 0) rotateY(0deg); transform: translate3d(100%, 0, 0) rotateY(0deg); } // // Fallback for old IE (<IE10) // that don't support 3D transforms // ----------------------------------------------------- .old-ie { .t3-off-canvas { z-index: 100!important; left: -@t3-off-canvas-width; } } html[dir="ltr"] .off-canvas-right.old-ie { .t3-off-canvas { right: -@t3-off-canvas-width; left: auto; } } // // Fix conflict with modal // ----------------------------------------------------- .modal-open .t3-wrapper { position: static; } typo.less 0000604 00000001464 15245561425 0006441 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // -------------------------------------------------- // TYPOGRAPHY // -------------------------------------------------- navigation.less 0000604 00000015553 15245561425 0007611 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // ------------------------------------------------------- // JA MAIN MENU // ------------------------------------------------------- .t3-mainnav { #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground); border-top: 1px solid @navbarBackground; border-bottom: 1px solid darken(@navbarBackground, 10%); .navbar { color: @navbarText; margin-bottom: 0; margin-top: 0; } .navbar-inner { min-height: @navbarHeight; padding: 0; background: transparent; border: 0; border-left: 1px solid darken(@navbarBackground, 5%); .border-radius(0); .box-shadow(none); .reset-filter(); } // NAVBAR // ------------------------------------------------------- .navbar .nav { margin: 0; } // Links // ----- .navbar .nav > li > a { border-top: 0; border-right: 1px solid darken(@navbarBackground, 5%); padding: ((@navbarHeight - @T3globalPadding) / 2) @T3globalPadding; text-shadow: none; } .navbar .nav > li > .separator, .navbar .nav > li > span { padding: ((@navbarHeight - @T3globalPadding) / 2) @T3globalPadding; display: inline-block; } // Hover .navbar .nav > li > a:focus, .navbar .nav > li > a:hover { background-color: @navbarLinkBackgroundHover; #gradient > .vertical(lighten(@navbarLinkBackgroundHover, 10%), @navbarLinkBackgroundHover); text-shadow: none; outline: none; } // Active nav items .navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus { color: @navbarLinkColorActive; text-shadow: none; #gradient > .vertical(lighten(@navbarLinkBackgroundActive, 10%), @navbarLinkBackgroundActive); .box-shadow (none); outline: none; } // Toggle Button // ------------- // Navbar button for toggling navbar items in responsive layouts // These definitions need to come after '.navbar .btn' .navbar .btn-navbar { float: left; padding: 5px 10px; margin: 4px @T3globalMargin 4px; .buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%)); .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)"); // The icon [class^="icon-"], [class^=" icon-"] { color: @navbarText; text-shadow: none; } } // DROPDOWN // ------------------------------------------------------- // Dropdown arrow/caret // -------------------- .caret { } // Place the caret .dropdown .caret { margin-left: 5px; } // The dropdown menu // ----------------- .dropdown-menu { .box-shadow(0 5px 10px rgba(0,0,0,.2)); // Links within the dropdown menu li > a { border-top: 1px solid @hrBorder; padding: 5px 20px; text-shadow: none; } } // No border top on the first .dropdown-menu li:first-child > a { border-top: 0; } // Hide the Top arrow of the dropdown menu. // See bootstrap/navbar.less or comment these line if you want to show it again. .navbar .nav > li > .dropdown-menu { &:before { display: none; } &:after { display: none; } } .dropdown-submenu > .dropdown-menu { margin-top: 0; } // Hover state // ----------- .dropdown-menu li > a:hover, .dropdown-menu li > a:focus, .dropdown-submenu:hover > a { } // Active state // ------------ .dropdown-menu .active > a, .dropdown-menu .active > a:hover { } // Disabled state // -------------- .dropdown-menu .disabled > a, .dropdown-menu .disabled > a:hover { color: @grayLight; } .dropdown-menu .disabled > a:hover { background-color: transparent; } // Open State // ---------- .nav li.dropdown.open > .dropdown-toggle { background-color: @dropdownLinkBackgroundHover; color: @dropdownLinkColorHover; } // Active Open .nav li.dropdown.active > .dropdown-toggle, .nav li.dropdown.open.active > .dropdown-toggle { background-color: @dropdownLinkBackgroundActive; color: @dropdownLinkColorActive; } // The Caret .nav li.dropdown > .dropdown-toggle .caret { } .nav li.dropdown.open > .dropdown-toggle .caret, .nav li.dropdown.active > .dropdown-toggle .caret, .nav li.dropdown.open.active > .dropdown-toggle .caret { } // Dropdown Sub menus // ------------------ .dropdown-submenu > .dropdown-menu { } .dropdown-submenu > a:after { } .dropdown-submenu:hover > a:after { } // End } // ------------------------------------------------------ // JA MAIN MENU (Inverted) // ------------------------------------------------------- .T3Navbar() when (@T3NavbarInverted = 1) { // Begin: Mixin Styling #gradient > .vertical(@grayDark, @grayDarker); border-top: 1px solid @grayDark; border-bottom: 1px solid @grayDark; .navbar { color: @grayLighter; } .navbar-inner { border-left: 1px solid @grayDark; } // NAVBAR // ------------------------------------------------------- // Links // ----- .navbar .nav > li > a { color: @grayLighter; border-right: 1px solid @grayDark; } // Hover .navbar .nav > li > a:focus, .navbar .nav > li > a:hover { background-color: lighten(@grayDark, 10%); #gradient > .vertical(lighten(@grayDark, 20%), lighten(@grayDark, 10%)); } // Active nav items .navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus { color: @white; #gradient > .vertical(lighten(@linkColor, 10%), @linkColor); } // DROPDOWN // ------------------------------------------------------- // The dropdown menu // ----------------- .dropdown-menu { background-color: lighten(@grayDark, 10%); border: 1px solid lighten(@grayDark, 20%); // Links within the dropdown menu li > a { color: @grayLighter; border-top: 1px solid lighten(@grayDark, 20%); } } // Open dropdown .nav li.dropdown.open > .dropdown-toggle, .nav li.dropdown.active > .dropdown-toggle, .nav li.dropdown.open.active > .dropdown-toggle { #gradient > .vertical(lighten(@linkColor, 10%), @linkColor); } // End: Mixin Styling } .T3Navbar() when (@T3NavbarInverted = 0) { // Leave blank here because we will use the default style. } // Calling the styles .t3-mainnav { .T3Navbar(); } home-responsive.less 0000604 00000003763 15245561425 0010575 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // VARIABLES & MIXINS // ------------------ @import "vars.less"; // // MOBILE // ------------------------------------------------------------- @media (max-width: 767px) { // ----------------------------------------------------------- // HOME SPOTLIGHTS // ----------------------------------------------------------- // Spotlight 1 + 5 // --------------- .home .t3-sl-1, .home .t3-sl-5 { margin-left: -20px; margin-right: -20px; //jumbotron .jumbotron { padding-top: 30px; padding-bottom: 10px; //jumbotron btn .btn-large { font-size: @baseFontSize + 2; padding: (@baseFontSize - 2px) (@baseFontSize + 2px); } } } // Spotlight 2 // ----------- .home .t3-sl-2 { text-align: center; p { font-size: @baseFontSize; line-height: @baseLineHeight; } } // Spotlight 3 & 4 // --------------- .home .t3-sl-3 p img { margin-bottom: 0; margin-top: @T3globalMargin; } .home .t3-sl-3, .home .t3-sl-4 { p { font-size: @baseFontSize; line-height: @baseLineHeight; } //jumbotron .jumbotron { padding-bottom: 0; h1 { margin-bottom: @T3globalMargin / 2; margin-top: @T3globalMargin / 2; } p { font-size: @baseFontSize; } } } } bootstrap-responsive.less 0000604 00000002403 15245561425 0011650 0 ustar 00 /*! * Bootstrap Responsive v2.1.0 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ // Responsive.less // For phone and tablet devices // ------------------------------------------------------------- // VARIABLES & MIXINS // ------------------ @import "vars.less"; // Modify this for custom colors, font-sizes, etc // RESPONSIVE CLASSES // ------------------ @import "../../../plugins/system/t3/base/bootstrap/less/responsive-utilities.less"; // MEDIA QUERIES // ------------------ // Large desktops @import "../../../plugins/system/t3/base/bootstrap/less/responsive-1200px-min.less"; // Tablets to regular desktops @import "../../../plugins/system/t3/base/bootstrap/less/responsive-768px-979px.less"; // Phones to portrait tablets and narrow desktops @import "../../../plugins/system/t3/base/bootstrap/less/responsive-767px-max.less"; // RESPONSIVE NAVBAR // ------------------ // From 979px and below, show a button to toggle navbar contents @import "../../../plugins/system/t3/base/bootstrap/less/component-animations.less"; @import "../../../plugins/system/t3/base/bootstrap/less/responsive-navbar.less"; typo-responsive.less 0000604 00000001270 15245561425 0010627 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ layout.less 0000604 00000003137 15245561425 0006762 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // // Layouts // --------------------------------------------------- .wrap { width: auto; clear: both; } // Avoid horiz. scroll-bars on tabs when e.g. tooltip is shown near right margin .tab-content { overflow: visible; // allow content to exceed div boundaries // In most web designs, height is left to grow to fit content, // and text normally wraps within width. // Bootstrap's auto will result in scroll bars on the div which is unsightly. // Window scroll bars should activate if needed. // This should be either visible (to allow e.g. tooltips to overflow into the margins) // or hidden (in which case e.g. tooltips will be clipped). } // overwrite .accordion-body.collapse { position: relative; height: 0; overflow: hidden; .transition(height .35s ease); &.in { height: auto; } } navigation-core.less 0000604 00000027534 15245561425 0010541 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // ------------------------------------------------------ // NAVIGATIONS ELEMENTS // ------------------------------------------------------ // NAV // ------------------------------------------------------ .nav { margin-bottom: @T3globalMargin; } .nav > li > a { } // Hover state .nav > li > a:hover { background-color: @navbarLinkBackgroundHover; color: @navbarLinkColorHover; } // Nav arrow/caret // ------------------ .nav .dropdown-toggle .caret { border-top-color: @linkColor; border-bottom-color: @linkColor; margin-top: 8px; margin-left: 5px; } .nav .dropdown-toggle:hover .caret { border-top-color: @linkColorHover; border-bottom-color: @linkColorHover; } // Active arrow/caret .nav .active .dropdown-toggle .caret { border-top-color: #fff; border-bottom-color: #fff; } .nav-tabs .active .dropdown-toggle .caret { border-top-color: @gray; border-bottom-color: @gray; } // DROPDOWN // ------------------------------------------------------- // Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns .dropup, .dropdown { position: relative; } .dropdown-toggle { // The caret makes the toggle a bit too tall in IE7 *margin-bottom: -3px; } .dropdown-toggle:active, .open .dropdown-toggle { outline: 0; } // Dropdown arrow/caret // -------------------- .caret { display: inline-block; width: 0; height: 0; vertical-align: top; border-top: 4px solid @black; border-right: 4px solid transparent; border-left: 4px solid transparent; content: ""; } // Place the caret .dropdown .caret { margin-top: 8px; margin-left: 2px; } // The dropdown menu // ----------------- .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: @zindexDropdown; display: none; // none by default, but block on "open" of the menu float: left; min-width: 160px; list-style: none; background-color: @dropdownBackground; border: 1px solid #ccc; // Fallback for IE7-8 border: 1px solid @dropdownBorder; *border-right-width: 2px; *border-bottom-width: 2px; padding: 0; margin: 0; // override default ul .border-radius(0 0 @baseBorderRadius @baseBorderRadius); .box-shadow(0 5px 10px rgba(0,0,0,.2)); -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; // Aligns the dropdown menu to right &.pull-right { right: 0; left: auto; } // Dividers (basically an hr) within the dropdown .divider { .nav-divider(@dropdownDividerTop, @dropdownDividerBottom); } // Links within the dropdown menu li > a { clear: both; color: @dropdownLinkColor; display: block; line-height: @baseLineHeight; font-weight: normal; padding: 3px 20px; text-shadow: none; white-space: nowrap; } } // Hover state // ----------- .dropdown-menu li > a:hover, .dropdown-menu li > a:focus, .dropdown-submenu:hover > a { color: @dropdownLinkColorHover; text-decoration: none; background-color: @dropdownLinkBackgroundHover; #gradient > .vertical(lighten(@dropdownLinkBackgroundHover, 10%), @dropdownLinkBackgroundHover); } // Active state // ------------ .dropdown-menu .active > a, .dropdown-menu .active > a:hover { color: @dropdownLinkColorActive; text-decoration: none; outline: 0; background-color: @dropdownLinkBackgroundActive; #gradient > .vertical(lighten(@dropdownLinkBackgroundActive, 10%), @dropdownLinkBackgroundActive); } // Disabled state // -------------- // Gray out text and ensure the hover state remains gray .dropdown-menu .disabled > a, .dropdown-menu .disabled > a:hover { color: @grayLight; } // Nuke hover effects .dropdown-menu .disabled > a:hover { text-decoration: none; background-color: transparent; background-image: none; // Remove CSS gradient cursor: default; } // Open state for the dropdown // --------------------------- .open { // IE7's z-index only goes to the nearest positioned ancestor, which would // make the menu appear below buttons that appeared later on the page *z-index: @zindexDropdown; & > .dropdown-menu { display: block; } } // Open dropdown link .nav li.dropdown.open > .dropdown-toggle, .nav li.dropdown.active > .dropdown-toggle, .nav li.dropdown.open.active > .dropdown-toggle, .nav > li.dropdown.open.active > a:hover { background-color: @dropdownLinkBackgroundActive; color: @dropdownLinkColorActive; } // Open dropdown caret .nav li.dropdown > .dropdown-toggle .caret { border-top-color: @navbarLinkColor; border-bottom-color: @navbarLinkColor; } .nav li.dropdown > .dropdown-toggle:hover .caret { border-top-color: @navbarLinkColorActive; border-bottom-color: @navbarLinkColorActive; } .nav li.dropdown.open > .dropdown-toggle .caret, .nav li.dropdown.active > .dropdown-toggle .caret, .nav li.dropdown.open.active > .dropdown-toggle .caret { border-top-color: @navbarLinkColorActive; border-bottom-color: @navbarLinkColorActive; } // Right aligned dropdowns // --------------------------- .pull-right > .dropdown-menu { right: 0; left: auto; } // Allow for dropdowns to go bottom up (aka, dropup-menu) // ------------------------------------------------------ // Just add .dropup after the standard .dropdown class and you're set, bro. // TODO: abstract this so that the navbar fixed styles are not placed here? .dropup, .navbar-fixed-bottom .dropdown { // Reverse the caret .caret { border-top: 0; border-bottom: 4px solid @black; content: ""; } // Different positioning for bottom up menu .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 1px; } } // Dropdown Sub menus // ------------------ .dropdown-submenu { position: relative; } // Default dropdowns .dropdown-submenu > .dropdown-menu { top: 0; left: 100%; margin-top: -6px; margin-left: -1px; .border-radius (@baseBorderRadius); } .dropdown-submenu:hover > .dropdown-menu { display: block; } .touch .dropdown-submenu:hover > .dropdown-menu { display: none; } .touch .dropdown-submenu.open > .dropdown-menu { display: block; } // Dropups .dropup .dropdown-submenu > .dropdown-menu { top: auto; bottom: 0; margin-top: 0; margin-bottom: -2px; .border-radius (0); } // Caret to indicate there is a submenu .dropdown-submenu > a:after { display: block; content: " "; float: right; width: 0; height: 0; border-color: transparent; border-style: solid; border-width: 5px 0 5px 5px; border-left-color: darken(@dropdownBackground, 20%); margin-top: 5px; margin-right: -10px; } .dropdown-submenu:hover > a:after { border-left-color: @dropdownLinkColorHover; } // Left aligned submenus .dropdown-submenu.pull-left { // Undo the float // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere. float: none; // Positioning the submenu > .dropdown-menu { left: -100%; margin-left: 10px; -webkit-border-radius: 6px 0 6px 6px; -moz-border-radius: 6px 0 6px 6px; border-radius: 6px 0 6px 6px; } } // Tweak nav headers // ----------------- // Increase padding from 15px to 20px on sides .dropdown .dropdown-menu .nav-header { padding-left: 20px; padding-right: 20px; } // Typeahead // --------- .typeahead { margin-top: 2px; // give it some space to breathe .border-radius(@baseBorderRadius); } // // Breadcrums // ------------------------------------------------------- .t3-navhelper { background: lighten(@grayDarker,5%); color: @gray; } .breadcrumb { padding: (@T3globalPadding / 2) 0; margin: 0; background-color: transparent; .border-radius(0); .clearfix(); li { text-shadow: none; display: block; float: left; } // Links a { color: @gray; } // Divider .divider { padding: 0 5px; color: @gray; img { vertical-align: middle; } } // Active .active { color: @grayLight; } } // // Pagination (multiple pages) // -------------------------------------------------- // Space out pagination from surrounding content .pagination { margin: @T3globalMargin 0; } .pagination ul { // Allow for text-based alignment display: inline-block; .ie7-inline-block(); // Reset default ul styles margin-left: 0; margin-bottom: 0; // Visuals .border-radius(@baseBorderRadius); .box-shadow(0 1px 2px rgba(0,0,0,.05)); } .pagination ul > li { display: inline; // Remove list-style and block-level defaults } .pagination ul > li > a, .pagination ul > li > span { float: left; // Collapse white-space padding: 4px 12px; line-height: @baseLineHeight; text-decoration: none; background-color: @paginationBackground; border: 1px solid @paginationBorder; border-left-width: 0; } .pagination ul > li > a:hover, .pagination ul > li > a:focus, .pagination ul > .active > a, .pagination ul > .active > span { background-color: @paginationActiveBackground; } .pagination ul > .active > a, .pagination ul > .active > span { color: @grayLight; cursor: default; } .pagination ul > .disabled > span, .pagination ul > .disabled > a, .pagination ul > .disabled > a:hover, .pagination ul > .disabled > a:focus { color: @grayLight; background-color: transparent; cursor: default; } .pagination ul > li:first-child > a, .pagination ul > li:first-child > span { border-left-width: 1px; .border-left-radius(@baseBorderRadius); } .pagination ul > li:last-child > a, .pagination ul > li:last-child > span { .border-right-radius(@baseBorderRadius); } // Alignment // -------------------------------------------------- .pagination-centered { text-align: center; } .pagination-right { text-align: right; } // Sizing // -------------------------------------------------- // Large .pagination-large { ul > li > a, ul > li > span { padding: @paddingLarge; font-size: @fontSizeLarge; } ul > li:first-child > a, ul > li:first-child > span { .border-left-radius(@borderRadiusLarge); } ul > li:last-child > a, ul > li:last-child > span { .border-right-radius(@borderRadiusLarge); } } // Small and mini .pagination-mini, .pagination-small { ul > li:first-child > a, ul > li:first-child > span { .border-left-radius(@borderRadiusSmall); } ul > li:last-child > a, ul > li:last-child > span { .border-right-radius(@borderRadiusSmall); } } // Small .pagination-small { ul > li > a, ul > li > span { padding: @paddingSmall; font-size: @fontSizeSmall; } } // Mini .pagination-mini { ul > li > a, ul > li > span { padding: @paddingMini; font-size: @fontSizeMini; } } // // Pager pagination // -------------------------------------------------- .pager { margin: @T3globalMargin 0; list-style: none; text-align: center; .clearfix(); } .pager li { display: inline; } .pager li > a, .pager li > span { display: inline-block; padding: 5px 14px; background-color: #fff; border: 1px solid #ddd; .border-radius(15px); } .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #f5f5f5; } .pager .next > a, .pager .next > span { float: right; } .pager .previous > a, .pager .previous > span { float: left; } .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: @grayLight; background-color: #fff; cursor: default; } colour_brown.less 0000604 00000002425 15245570444 0010157 0 ustar 00 // colour_brown.less // // Less to compile Hathor in the brown colour scheme // ----------------------------------------------------- /** * #2c2c2c Text * #054993 Links * #ffffff Background, border, text * #d5c1b2 Background alternate, button/icon/menu background * #d5c1b2-d5c1b2 Gradient Background * #e5f0fa Background (input required) * #e1d3c8 Background Hover, Top/Left icon borders * #000000 Main borders * #000000 Top/Left hover borders * #000000 Right/Bottom hover borders * * Special Use Colors: * #a20000 Text Error, border invalid * #cccccc Text (faded) * #005800 Text (success) * #eeeeee Background (input disabled) * #ffffcf Background permissions debug * #cfffda Background permissions debug * #ffcfcf Background permissions debug */ // Import the variables file first to get common variables loaded @import "hathor_variables.less"; // Define variables unique to this colour scheme, as well as override variables already defined in the common file @altBackground: #d5c1b2; @gradientTop: #d5c1b2; @gradientBottom: #d5c1b2; @mainBorder: #000000; @toolbarColor: #054993; @hoverBackground: #e5d9c3; @nwBorder: #868778; @seBorder: #f6f7db; // Import the baseline to compile the CSS @import "colour_baseline.less"; colour_blue.less 0000604 00000002233 15245570444 0007754 0 ustar 00 // colour_blue.less // // Less to compile Hathor in the blue colour scheme // ----------------------------------------------------- /** * #2c2c2c Text * #054993 Links * #ffffff Background, border, text * #c3d2e5 Background alternate, button/icon/menu background * #a5bbd4-c3d2e5 Gradient Background * #e5f0fa Background (input required) * #e5d9c3 Background Hover, Top/Left icon borders * #738498 Main borders * #868778 Top/Left hover borders * #f6f7db Right/Bottom hover borders * * Special Use Colors: * #a20000 Text Error, border invalid * #cccccc Text (faded) * #005800 Text (success) * #eeeeee Background (input disabled) * #ffffcf Background permissions debug * #cfffda Background permissions debug * #ffcfcf Background permissions debug */ // Import the variables file first to get common variables loaded @import "hathor_variables.less"; // Define variables unique to this colour scheme, as well as override variables already defined in the common file @altBackground: #c3d2e5; @gradientTop: #a5bbd4; @gradientBottom: #c3d2e5; @mainBorder: #738498; // Import the baseline to compile the CSS @import "colour_baseline.less"; colour_standard.less 0000604 00000002243 15245570444 0010626 0 ustar 00 // colour_standard.less // // Less to compile Hathor in the default colour scheme // ----------------------------------------------------- /** * Main colors: * #2c2c2c Text * #054993 Links * #ffffff Background, border, text * #f9fade Background alternate, button/icon/menu background * #e5f0fa Background (input required) * #e3e4ca Background Hover, Right/Bottom icon borders * #c7c8b2 Main borders * #868778 Top/Left icon hover borders * #f6f7db Right/Bottom icon hover borders * * Special Use Colors: * #a20000 Text Error, border invalid * #cccccc Text (faded) * #005800 Text (success) * #eeeeee Background (input disabled) * #ffffcf Background‚ permissions debug * #cfffda Background‚ permissions debug * #ffcfcf Background‚ permissions debug */ // Import the variables file first to get common variables loaded @import "hathor_variables.less"; // Define variables unique to this colour scheme, as well as override variables already defined in the common file @altBackground: #f9fade; @gradientTop: #f9fade; @gradientBottom: #f9fade; @mainBorder: #c7c8b2; // Import the baseline to compile the CSS @import "colour_baseline.less"; hathor_variables.less 0000604 00000010426 15245570444 0010762 0 ustar 00 // hathor_variables.less // // Less file containing Bootstrap variables needed to compile its CSS // ----------------------------------------------------- // Grays // ------------------------- @black: #000000; @grayDarker: #222222; @grayDark: #333333; @gray: #555555; @grayLight: #999999; @grayLighter: #eeeeee; @white: #ffffff; // Accent colors // ------------------------- @blue: #049cdb; @blueDark: #0064cd; @green: #46a546; @red: #9d261d; @yellow: #ffc40d; @orange: #f89406; @pink: #c3325f; @purple: #7a43b6; // Scaffolding // ------------------------- @bodyBackground: @white; @textColor: #2c2c2c; // Links // ------------------------- @linkColor: #054993; @linkColorHover: darken(@linkColor, 15%); // Typography // ------------------------- @baseFontSize: 13px; @baseLineHeight: 15px; @headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily @headingsFontWeight: bold; // instead of browser default, bold @headingsColor: inherit; // empty to use BS default, @textColor // Component sizing // ------------------------- @baseBorderRadius: 4px; @borderRadiusLarge: 6px; @borderRadiusSmall: 3px; // Buttons // ------------------------- @btnBackground: @white; @btnBackgroundHighlight: darken(@white, 10%); @btnBorder: #bbb; @btnPrimaryBackground: @linkColor; @btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%); @btnInfoBackground: #5bc0de; @btnInfoBackgroundHighlight: #2f96b4; @btnSuccessBackground: #62c462; @btnSuccessBackgroundHighlight: #51a351; @btnWarningBackground: lighten(@orange, 15%); @btnWarningBackgroundHighlight: @orange; @btnDangerBackground: #ee5f5b; @btnDangerBackgroundHighlight: #bd362f; @btnInverseBackground: #444; @btnInverseBackgroundHighlight: @grayDarker; // Forms // ------------------------- @inputBackground: #e5f0fa; @inputBorder: #ccc; @inputBorderRadius: 3px; @inputDisabledBackground: @grayLighter; @formActionsBackground: #f5f5f5; @inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border // Z-index master list // ------------------------- // Used for a bird's eye view of components dependent on the z-axis // Try to avoid customizing these :) @zindexDropdown: 1000; @zindexTooltip: 1030; @zindexFixedNavbar: 1030; @zindexModalBackdrop: 1040; @zindexModal: 1050; @zindexPopover: 1060; // Form states and alerts // ------------------------- @warningText: #c09853; @warningBackground: #fcf8e3; @warningBorder: darken(spin(@warningBackground, -10), 3%); @errorText: #a20000; @errorBackground: #f2dede; @errorBorder: darken(spin(@errorBackground, -10), 3%); @successText: #005800; @successBackground: #dff0d8; @successBorder: darken(spin(@successBackground, -10), 5%); @infoText: #3a87ad; @infoBackground: #d9edf7; @infoBorder: darken(spin(@infoBackground, -10), 7%); // Tooltips and popovers // ------------------------- @tooltipColor: @white; @tooltipBackground: @black; @tooltipArrowWidth: 5px; @tooltipArrowColor: @tooltipBackground; @popoverBackground: @white; @popoverArrowWidth: 10px; @popoverArrowColor: @white; @popoverTitleBackground: darken(@popoverBackground, 3%); // Special enhancement for popovers @popoverArrowOuterWidth: @popoverArrowWidth + 1; @popoverArrowOuterColor: rgba(0,0,0,.25); // Variables unique to Hathor // ------------------------- @toolbarColor: @linkColor; @hoverBackground: #e5d9c3; @nwBorder: #868778; @seBorder: #f6f7db; @fadedText: #cccccc; @disabledBackground: #eeeeee; @permissionDefault: #ffffcf; @permissionAllowed: #cfffda; @permissionDenied: #ffcfcf; colour_baseline.less 0000604 00000103471 15245570444 0010615 0 ustar 00 // colour_baseline.less // // Baseline CSS for the Hathor colours. // Compilers should include this in their colour's imports, but not directly // compile using this file. // ----------------------------------------------------- // Core variables and mixins @import "../../../../media/jui/less/mixins.less"; // Bootstrap Buttons // Using override for Hathor to target specific instances only @import "buttons.less"; // Bootstrap Forms // Using override for Hathor since we're not pulling in all Bootstrap form styles @import "forms.less"; // Bootstrap Labels and Badges @import "../../../../media/jui/less/labels-badges.less"; /* * General styles */ body { background-color: @bodyBackground; color: @textColor; } h1 { color: @textColor; } a:link { color: @linkColor; } a:visited { color: @linkColor; } /* * Overall Styles */ #header { background: @bodyBackground url(../images/j_logo.png) no-repeat; } #header h1.title { color: @textColor; } #nav { #gradient > .vertical(@gradientTop, @gradientBottom); border: 1px solid @mainBorder; } #content { background: @bodyBackground; } #no-submenu { border-bottom: 1px solid @mainBorder; } #element-box { background: @bodyBackground; border-right: 1px solid @mainBorder; border-bottom: 1px solid @mainBorder; border-left: 1px solid @mainBorder; } #element-box.login { border-top: 1px solid @mainBorder; } /* * Various Styles */ .enabled, .success, .allow, span.writable { color: @successText; } .disabled, p.error, .warning, .deny, span.unwritable { color: @errorText; } .nowarning { color: @textColor; } .none, .protected { color: @mainBorder; } span.note { background: @bodyBackground; color: @textColor; } div.checkin-tick { background: url(../images/admin/tick.png) 20px 50% no-repeat; } /* * Overlib */ .ol-foreground { background-color: @altBackground; } .ol-background { background-color: @successText; } .ol-textfont { color: @textColor; } .ol-captionfont { color: @bodyBackground; } .ol-captionfont a { color: @linkColor; } /* * Subheader, toolbar, page title */ div.subheader .padding { background: @bodyBackground; } .pagetitle h2 { color: @textColor; } div.configuration { color: @textColor; background-image: url(../images/menu/icon-16-config.png); background-repeat: no-repeat; } div.toolbar-box { border-right: 1px solid @mainBorder; border-bottom: 1px solid @mainBorder; border-left: 1px solid @mainBorder; background: @bodyBackground; } div.toolbar-list li { color: @textColor; } div.toolbar-list li.divider { border-right: 1px dotted @hoverBackground; } div.toolbar-list a { border-left: 1px solid @hoverBackground; border-top: 1px solid @hoverBackground; border-right: 1px solid @mainBorder; border-bottom: 1px solid @mainBorder; background: @altBackground; } div.toolbar-list a:hover { border-left: 1px solid @nwBorder; border-top: 1px solid @nwBorder; border-right: 1px solid @seBorder; border-bottom: 1px solid @seBorder; background: @hoverBackground; color: @toolbarColor; } div.btn-toolbar { margin-left: 5px; padding-top: 3px; } div.btn-toolbar li.divider { border-right: 1px dotted @hoverBackground; } div.btn-toolbar div.btn-group button { border-left: 1px solid @hoverBackground; border-top: 1px solid @hoverBackground; border-right: 1px solid @mainBorder; border-bottom: 1px solid @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); padding: 5px 4px 5px 4px; } div.btn-toolbar div.btn-group button:hover { border-left: 1px solid @nwBorder; border-top: 1px solid @nwBorder; border-right: 1px solid @seBorder; border-bottom: 1px solid @seBorder; background: @hoverBackground; color: @toolbarColor; cursor: pointer; } div.btn-toolbar a { border-left: 1px solid @hoverBackground; border-top: 1px solid @hoverBackground; border-right: 1px solid @mainBorder; border-bottom: 1px solid @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); padding: 6px 5px; text-align: center; white-space: nowrap; font-size: 1.2em; text-decoration: none; } div.btn-toolbar a:hover { border-left: 1px solid @nwBorder; border-top: 1px solid @nwBorder; border-right: 1px solid @seBorder; border-bottom: 1px solid @seBorder; background: @hoverBackground; color: @toolbarColor; cursor: pointer; } div.btn-toolbar div.btn-group button.inactive { background: @altBackground; } /* * Pane Slider pane Toggler styles */ .pane-sliders .title { color: @textColor; } .pane-sliders .panel { border: 1px solid @mainBorder; } .pane-sliders .panel h3 { #gradient > .vertical(@gradientTop, @gradientBottom); color: @linkColor; } .pane-sliders .panel h3:hover { background: @hoverBackground; } .pane-sliders .panel h3:hover a { text-decoration: none; } .pane-sliders .adminlist { border: 0 none; } .pane-sliders .adminlist td { border: 0 none; } .pane-toggler span { background: transparent url(../images/j_arrow.png) 5px 50% no-repeat; } .pane-toggler-down span { background: transparent url(../images/j_arrow_down.png) 5px 50% no-repeat; } .pane-toggler-down { border-bottom: 1px solid @mainBorder; } /* * Tabs */ dl.tabs dt { border: 1px solid @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); color: @linkColor; } dl.tabs dt:hover { background: @hoverBackground; } dl.tabs dt.open { background: @bodyBackground; border-bottom: 1px solid @bodyBackground; color: @textColor; } dl.tabs dt.open a:visited { color: @textColor; } dl.tabs dt a:hover { text-decoration: none; } dl.tabs dt a:focus { text-decoration: underline; } div.current { border: 1px solid @mainBorder; background: @bodyBackground; } /* * New parameter styles */ div.current fieldset { border: none 0; } div.current fieldset.adminform { border: 1px solid @mainBorder; } /* * Login Settings */ #login-page .pagetitle h2 { background: transparent; } #login-page #header { border-bottom: 1px solid @mainBorder; } #login-page #lock { background: url(../images/j_login_lock.png) 50% 0 no-repeat; } #login-page #element-box.login { #gradient > .vertical(@gradientTop, @gradientBottom); } #form-login { background: @bodyBackground; border: 1px solid @mainBorder; } #form-login label { color: @textColor; } #form-login div.button1 a { color: @linkColor; } /* * Cpanel Settings */ #cpanel div.icon a, .cpanel div.icon a { color: @linkColor; border-left: 1px solid @hoverBackground; border-top: 1px solid @hoverBackground; border-right: 1px solid @mainBorder; border-bottom: 1px solid @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); } #cpanel div.icon a:hover, #cpanel div.icon a:focus, .cpanel div.icon a:hover, .cpanel div.icon a:focus { border-left: 1px solid @nwBorder; border-top: 1px solid @nwBorder; border-right: 1px solid @seBorder; border-bottom: 1px solid @seBorder; color: @linkColor; background: @hoverBackground; } /* * Form Styles */ fieldset { border: 1px @mainBorder solid; } legend { color: @textColor; } fieldset ul.checklist input:focus { outline: thin dotted @textColor; } fieldset#filter-bar { border-top: 0 solid @mainBorder; border-right: 0 solid @mainBorder; border-bottom: 1px solid @mainBorder; border-left: 0 solid @mainBorder; } fieldset#filter-bar ol, fieldset#filter-bar ul { border: 0; } fieldset#filter-bar ol li fieldset, fieldset#filter-bar ul li fieldset { border: 0; } /* Note: these visual cues should be augmented by aria */ .invalid { color: @errorText; } /* must be augmented by aria at the same time if changed dynamically by js aria-invalid=true or aria-invalid=false */ input.invalid { border: 1px solid @errorText; } /* augmented by aria in template javascript */ input.readonly, span.faux-input { border: 0; } input.required { background-color: @inputBackground; } input.disabled { background-color: @disabledBackground; } input, select, span.faux-input { background-color: @bodyBackground; border: 1px solid @mainBorder; } /* Inputs used as buttons */ input[type="button"], input[type="submit"], input[type="reset"] { color: @linkColor; #gradient > .vertical(@gradientTop, @gradientBottom); } input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, input[type="reset"]:hover, input[type="reset"]:focus { background: @hoverBackground; } textarea { background-color: @bodyBackground; border: 1px solid @mainBorder; } input:focus, select:focus, textarea:focus, option:focus, input:hover, select:hover, textarea:hover, option:hover { background-color: @hoverBackground; color: @linkColor; } /* * Option or Parameter styles */ .paramrules { background: @altBackground; } span.gi { color: @mainBorder; } /* * Admintable Styles */ table.admintable td.key, table.admintable td.paramlist_key { background-color: @altBackground; color: @textColor; border-bottom: 1px solid @mainBorder; border-right: 1px solid @mainBorder; } table.paramlist td.paramlist_description { background-color: @altBackground; color: @textColor; border-bottom: 1px solid @mainBorder; border-right: 1px solid @mainBorder; } /* * Admin Form Styles */ fieldset.adminform { border: 1px solid @mainBorder; } /* * Table styles are for use with tabular data */ table.adminform { background-color: @bodyBackground; } table.adminform tr.row0 { background-color: @bodyBackground; } table.adminform tr.row1 { background-color: @hoverBackground; } table.adminform th { color: @textColor; background: @bodyBackground; } table.adminform tr { border-bottom: 1px solid @mainBorder; border-right: 1px solid @mainBorder; } /* * Adminlist Table layout */ table.adminlist { border-spacing: 1px; background-color: @bodyBackground; color: @textColor; } table.adminlist.modal { border-top: 1px solid @mainBorder; border-right: 1px solid @mainBorder; border-left: 1px solid @mainBorder; } table.adminlist a { color: @linkColor; } table.adminlist thead th { background: @bodyBackground; color: @textColor; border-bottom: 1px solid @mainBorder; } /* * Table row styles */ table.adminlist tbody tr { background: @bodyBackground; } table.adminlist tbody tr.row1 { background: @bodyBackground; } table.adminlist tbody tr.row1:last-child td, table.adminlist tbody tr.row1:last-child th { border-bottom: 1px solid @mainBorder; } table.adminlist tbody tr.row0:hover td, table.adminlist tbody tr.row1:hover td, table.adminlist tbody tr.row0:hover th, table.adminlist tbody tr.row1:hover th, table.adminlist tbody tr.row0:focus td, table.adminlist tbody tr.row1:focus td, table.adminlist tbody tr.row0:focus th, table.adminlist tbody tr.row1:focus th { background-color: @hoverBackground; } table.adminlist tbody tr td, table.adminlist tbody tr th { border-right: 1px solid @mainBorder; } table.adminlist tbody tr td:last-child { border-right: none; } table.adminlist tbody tr.row0:last-child td, table.adminlist tbody tr.row0:last-child th { border-bottom: 1px solid @mainBorder; } table.adminlist tbody tr.row0 td, table.adminlist tbody tr.row0 th { #gradient > .vertical(@gradientTop, @gradientBottom); } table.adminlist { border-bottom: 0 solid @mainBorder; } table.adminlist tfoot tr { color: @textColor; } /* * Table td/th styles */ table.adminlist tfoot td, table.adminlist tfoot th { background-color: @bodyBackground; border-top: 1px solid @mainBorder; } /* * Adminlist buttons */ table.adminlist tr td.btns a { border: 1px solid @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); color: @linkColor; } table.adminlist tr td.btns a:hover, table.adminlist tr td.btns a:active, table.adminlist tr td.btns a:focus { background-color: @bodyBackground; } /* * Saving order icon styling in admin tables */ a.saveorder { background: url(../images/admin/filesave.png) no-repeat; } a.saveorder.inactive { background-position: 0 -16px; } /* * Saving order icon styling in admin tables */ fieldset.batch { background: @bodyBackground; } /** * Button styling */ button { color: @toolbarColor; border: 1px solid @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); } button:hover, button:focus { background: @hoverBackground; } .invalid { color: #ff0000; } /* Button 1 Type */ .button1 { border: 1px solid @mainBorder; color: @linkColor; #gradient > .vertical(@gradientTop, @gradientBottom); } /* Use this if you add images to the buttons such as directional arrows */ .button1 a { color: @linkColor; /* add padding if you are using the directional images */ /* padding: 0 30px 0 6px; */ } .button1 a:hover, .button1 a:focus { background: @hoverBackground; } /* Button 2 Type */ .button2-left, .button2-right { border: 1px solid @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); } .button2-left a, .button2-right a, .button2-left span, .button2-right span { color: @linkColor; } /* these are inactive buttons */ .button2-left span, .button2-right span { color: #999999; } .page span, .blank span { color: @linkColor; } .button2-left a:hover, .button2-right a:hover, .button2-left a:focus, .button2-right a:focus { background: @hoverBackground; } /** * Pagination styles */ /* Grey out the current page number */ .pagination .page span { color: #999999; } /** * Tooltips */ .tip { background: #000000; border: 1px solid #FFFFFF; } .tip-title { background: url(../images/selector-arrow-std.png) no-repeat; } /** * Calendar */ a img.calendar { background: url(../images/calendar.png) no-repeat; } /** * JGrid styles */ .jgrid span.publish { background-image: url(../images/admin/tick.png); } .jgrid span.unpublish { background-image: url(../images/admin/publish_x.png); } .jgrid span.archive { background-image: url(../images/menu/icon-16-archive.png); } .jgrid span.trash { background-image: url(../images/menu/icon-16-trash.png); } .jgrid span.default { background-image: url(../images/menu/icon-16-default.png); } .jgrid span.notdefault { background-image: url(../images/menu/icon-16-notdefault.png); } .jgrid span.checkedout { background-image: url(../images/admin/checked_out.png); } .jgrid span.downarrow { background-image: url(../images/admin/downarrow.png); } .jgrid span.downarrow_disabled { background-image: url(../images/admin/downarrow0.png); } .jgrid span.uparrow { background-image: url(../images/admin/uparrow.png); } .jgrid span.uparrow_disabled { background-image: url(../images/admin/uparrow0.png); } .jgrid span.published { background-image: url(../images/admin/publish_g.png); } .jgrid span.expired { background-image: url(../images/admin/publish_r.png); } .jgrid span.pending { background-image: url(../images/admin/publish_y.png); } .jgrid span.warning { background-image: url(../images/admin/publish_y.png); } /** * Toolbar icons * These icons are used for the toolbar buttons * The classes are constructed dynamically when the toolbar is created */ .icon-32-send { background-image: url(../images/toolbar/icon-32-send.png); } .icon-32-delete { background-image: url(../images/toolbar/icon-32-delete.png); } .icon-32-help { background-image: url(../images/toolbar/icon-32-help.png); } .icon-32-cancel { background-image: url(../images/toolbar/icon-32-cancel.png); } .icon-32-checkin { background-image: url(../images/toolbar/icon-32-checkin.png); } .icon-32-options { background-image: url(../images/toolbar/icon-32-config.png); } .icon-32-apply { background-image: url(../images/toolbar/icon-32-apply.png); } .icon-32-back { background-image: url(../images/toolbar/icon-32-back.png); } .icon-32-forward { background-image: url(../images/toolbar/icon-32-forward.png); } .icon-32-save { background-image: url(../images/toolbar/icon-32-save.png); } .icon-32-edit { background-image: url(../images/toolbar/icon-32-edit.png); } .icon-32-copy { background-image: url(../images/toolbar/icon-32-copy.png); } .icon-32-move { background-image: url(../images/toolbar/icon-32-move.png); } .icon-32-new { background-image: url(../images/toolbar/icon-32-new.png); } .icon-32-upload { background-image: url(../images/toolbar/icon-32-upload.png); } .icon-32-assign { background-image: url(../images/toolbar/icon-32-publish.png); } .icon-32-html { background-image: url(../images/toolbar/icon-32-html.png); } .icon-32-css { background-image: url(../images/toolbar/icon-32-css.png); } .icon-32-menus { background-image: url(../images/toolbar/icon-32-menu.png); } .icon-32-publish { background-image: url(../images/toolbar/icon-32-publish.png); } .icon-32-unblock { background-image: url(../images/toolbar/icon-32-unblock.png); } .icon-32-unpublish { background-image: url(../images/toolbar/icon-32-unpublish.png); } .icon-32-restore { background-image: url(../images/toolbar/icon-32-revert.png); } .icon-32-trash { background-image: url(../images/toolbar/icon-32-trash.png); } .icon-32-archive { background-image: url(../images/toolbar/icon-32-archive.png); } .icon-32-unarchive { background-image: url(../images/toolbar/icon-32-unarchive.png); } .icon-32-preview { background-image: url(../images/toolbar/icon-32-preview.png); } .icon-32-default { background-image: url(../images/toolbar/icon-32-default.png); } .icon-32-refresh { background-image: url(../images/toolbar/icon-32-refresh.png); } .icon-32-save-new { background-image: url(../images/toolbar/icon-32-save-new.png); } .icon-32-save-copy { background-image: url(../images/toolbar/icon-32-save-copy.png); } .icon-32-error { background-image: url(../images/toolbar/icon-32-error.png); } .icon-32-new-style { background-image: url(../images/toolbar/icon-32-new-style.png); } .icon-32-delete-style { background-image: url(../images/toolbar/icon-32-delete-style.png); } .icon-32-purge { background-image: url(../images/toolbar/icon-32-purge.png); } .icon-32-remove { background-image: url(../images/toolbar/icon-32-remove.png); } .icon-32-featured { background-image: url(../images/toolbar/icon-32-featured.png); } .icon-32-unfeatured { background-image: url(../images/toolbar/icon-32-featured.png); background-position: 0% 100%; } .icon-32-export { background-image: url(../images/toolbar/icon-32-export.png); } .icon-32-stats { background-image: url(../images/toolbar/icon-32-stats.png); } .icon-32-print { background-image: url(../images/toolbar/icon-32-print.png); } .icon-32-batch { background-image: url(../images/toolbar/icon-32-batch.png); } .icon-32-envelope { background-image: url(../images/toolbar/icon-32-messaging.png); } .icon-32-download { background-image: url(../images/toolbar/icon-32-export.png); } .icon-32-bars { background-image: url(../images/toolbar/icon-32-stats.png); } /** * Quick Icons * Also knows as Header Icons * These are used for the Quick Icons on the Control Panel * The same classes are also assigned the Component Title */ .icon-48-categories { background-image: url(../images/header/icon-48-category.png); } .icon-48-category-edit { background-image: url(../images/header/icon-48-category.png); } .icon-48-category-add { background-image: url(../images/header/icon-48-category-add.png); } .icon-48-generic { background-image: url(../images/header/icon-48-generic.png); } .icon-48-banners { background-image: url(../images/header/icon-48-banner.png); } .icon-48-banners-categories { background-image: url(../images/header/icon-48-banner-categories.png); } .icon-48-banners-category-edit { background-image: url(../images/header/icon-48-banner-categories.png); } .icon-48-banners-category-add { background-image: url(../images/header/icon-48-category-add.png); } .icon-48-banners-clients { background-image: url(../images/header/icon-48-banner-client.png); } .icon-48-banners-tracks { background-image: url(../images/header/icon-48-banner-tracks.png); } .icon-48-checkin { background-image: url(../images/header/icon-48-checkin.png); } .icon-48-clear { background-image: url(../images/header/icon-48-clear.png); } .icon-48-contact { background-image: url(../images/header/icon-48-contacts.png); } .icon-48-contact-categories { background-image: url(../images/header/icon-48-contacts-categories.png); } .icon-48-contact-category-edit { background-image: url(../images/header/icon-48-contacts-categories.png); } .icon-48-contact-category-add { background-image: url(../images/header/icon-48-category-add.png); } .icon-48-purge { background-image: url(../images/header/icon-48-purge.png); } .icon-48-cpanel { background-image: url(../images/header/icon-48-cpanel.png); } .icon-48-config { background-image: url(../images/header/icon-48-config.png); } .icon-48-groups { background-image: url(../images/header/icon-48-groups.png); } .icon-48-groups-add { background-image: url(../images/header/icon-48-groups-add.png); } .icon-48-levels { background-image: url(../images/header/icon-48-levels.png); } .icon-48-levels-add { background-image: url(../images/header/icon-48-levels-add.png); } .icon-48-module { background-image: url(../images/header/icon-48-module.png); } .icon-48-menu { background-image: url(../images/header/icon-48-menu.png); } .icon-48-menu-add { background-image: url(../images/header/icon-48-menu-add.png); } .icon-48-menumgr { background-image: url(../images/header/icon-48-menumgr.png); } .icon-48-trash { background-image: url(../images/header/icon-48-trash.png); } .icon-48-user { background-image: url(../images/header/icon-48-user.png); } .icon-48-user-add { background-image: url(../images/header/icon-48-user-add.png); } .icon-48-user-edit { background-image: url(../images/header/icon-48-user-edit.png); } .icon-48-user-profile { background-image: url(../images/header/icon-48-user-profile.png); } .icon-48-inbox { background-image: url(../images/header/icon-48-inbox.png); } .icon-48-new-privatemessage { background-image: url(../images/header/icon-48-new-privatemessage.png); } .icon-48-msgconfig { background-image: url(../images/header/icon-48-message_config.png); } .icon-48-langmanager { background-image: url(../images/header/icon-48-language.png); } .icon-48-mediamanager { background-image: url(../images/header/icon-48-media.png); } .icon-48-plugin { background-image: url(../images/header/icon-48-plugin.png); } .icon-48-help_header { background-image: url(../images/header/icon-48-help_header.png); } .icon-48-impressions { background-image: url(../images/header/icon-48-stats.png); } .icon-48-browser { background-image: url(../images/header/icon-48-stats.png); } .icon-48-searchtext { background-image: url(../images/header/icon-48-stats.png); } .icon-48-thememanager { background-image: url(../images/header/icon-48-themes.png); } .icon-48-writemess { background-image: url(../images/header/icon-48-writemess.png); } .icon-48-featured { background-image: url(../images/header/icon-48-featured.png); } .icon-48-sections { background-image: url(../images/header/icon-48-section.png); } .icon-48-article-add { background-image: url(../images/header/icon-48-article-add.png); } .icon-48-article-edit { background-image: url(../images/header/icon-48-article-edit.png); } .icon-48-article { background-image: url(../images/header/icon-48-article.png); } .icon-48-content-categories { background-image: url(../images/header/icon-48-category.png); } .icon-48-content-category-edit { background-image: url(../images/header/icon-48-category.png); } .icon-48-content-category-add { background-image: url(../images/header/icon-48-category-add.png); } .icon-48-install { background-image: url(../images/header/icon-48-extension.png); } .icon-48-dbbackup { background-image: url(../images/header/icon-48-backup.png); } .icon-48-dbrestore { background-image: url(../images/header/icon-48-dbrestore.png); } .icon-48-dbquery { background-image: url(../images/header/icon-48-query.png); } .icon-48-systeminfo { background-image: url(../images/header/icon-48-info.png); } .icon-48-massmail { background-image: url(../images/header/icon-48-massmail.png); } .icon-48-redirect { background-image: url(../images/header/icon-48-redirect.png); } .icon-48-search { background-image: url(../images/header/icon-48-search.png); } .icon-48-finder { background-image: url(../images/header/icon-48-search.png); } .icon-48-newsfeeds { background-image: url(../images/header/icon-48-newsfeeds.png); } .icon-48-newsfeeds-categories { background-image: url(../images/header/icon-48-newsfeeds-cat.png); } .icon-48-newsfeeds-category-edit { background-image: url(../images/header/icon-48-newsfeeds-cat.png); } .icon-48-newsfeeds-category-add { background-image: url(../images/header/icon-48-category-add.png); } .icon-48-weblinks { background-image: url(../images/header/icon-48-links.png); } .icon-48-weblinks-categories { background-image: url(../images/header/icon-48-links-cat.png); } .icon-48-weblinks-category-edit { background-image: url(../images/header/icon-48-links-cat.png); } .icon-48-weblinks-category-add { background-image: url(../images/header/icon-48-category-add.png); } .icon-48-tags { background-image: url(../images/header/icon-48-tags.png); } .icon-48-assoc { background-image: url(../images/header/icon-48-assoc.png); } .icon-48-puzzle { background-image: url(../images/header/icon-48-puzzle.png); } /** * General styles */ div.message { border: 1px solid @mainBorder; color: @textColor; } .helpFrame { border-left: 0 solid @mainBorder; border-right: none; border-top: none; border-bottom: none; } .outline { border: 1px solid @mainBorder; background: @bodyBackground; } /** * Modal Styles */ dl.menu_type dt { border-bottom: 1px solid @mainBorder; } ul#new-modules-list { border-top: 1px solid @mainBorder; } /** * User Accessibility */ /* Skip to Content Visual Styling */ #skiplinkholder a, #skiplinkholder a:link, #skiplinkholder a:visited { color: @bodyBackground; background: @linkColor; border-bottom: solid #336 2px; } /** * Admin Form Styles */ fieldset.panelform { border: none 0; } /** * ACL STYLES relocated from com_users/media/grid.css */ a.move_up { background-image: url('../images/admin/uparrow.png'); } span.move_up { background-image: url('../images/admin/uparrow0.png'); } a.move_down { background-image: url('../images/admin/downarrow.png'); } span.move_down { background-image: url('../images/admin/downarrow0.png'); } a.grid_false { background-image: url('../images/admin/publish_x.png'); } a.grid_true { background-image: url('../images/admin/tick.png'); } a.grid_trash { background-image: url('../images/admin/icon-16-trash.png'); } /** * ACL PANEL STYLES */ /* All Tabs */ tr.row1 { background-color: @altBackground; } /* Summary Tab */ table.aclsummary-table td.col2, table.aclsummary-table th.col2, table.aclsummary-table td.col3, table.aclsummary-table th.col3, table.aclsummary-table td.col4, table.aclsummary-table th.col4, table.aclsummary-table td.col5, table.aclsummary-table th.col5, table.aclsummary-table td.col6, table.aclsummary-table th.col6, table.aclmodify-table td.col2, table.aclmodify-table th.col2 { border-left: 1px solid @mainBorder; } /* Icons */ span.icon-16-unset { background: url(../images/admin/icon-16-denyinactive.png) no-repeat; } span.icon-16-allowed { background: url(../images/admin/icon-16-allow.png) no-repeat; } span.icon-16-denied { background: url(../images/admin/icon-16-deny.png) no-repeat; } span.icon-16-locked { background: url(../images/admin/checked_out.png) 0 0 no-repeat; } label.icon-16-allow { background: url(../images/admin/icon-16-allow.png) no-repeat; } label.icon-16-deny { background: url(../images/admin/icon-16-deny.png) no-repeat; } a.icon-16-allow { background: url(../images/admin/icon-16-allow.png) no-repeat; } a.icon-16-deny { background: url(../images/admin/icon-16-deny.png) no-repeat; } a.icon-16-allowinactive { background: url(../images/admin/icon-16-allowinactive.png) no-repeat; } a.icon-16-denyinactive { background: url(../images/admin/icon-16-denyinactive.png) no-repeat; } /* ACL footer/legend */ ul.acllegend li.acl-allowed { background: url(../images/admin/icon-16-allow.png) no-repeat left; } ul.acllegend li.acl-denied { background: url(../images/admin/icon-16-deny.png) no-repeat left; } li.acl-editgroups, li.acl-resetbtn { background-color: @altBackground; border: 1px solid @mainBorder; } li.acl-editgroups a, li.acl-resetbtn a { color: @linkColor; } li.acl-editgroups:hover, li.acl-resetbtn:hover, li.acl-editgroups:focus, li.acl-resetbtn:focus { background-color: @hoverBackground; } /* ACL Config --------- */ table#acl-config { border: 1px solid @mainBorder; } table#acl-config th, table#acl-config td { background: @altBackground; border-bottom: 1px solid @mainBorder; } table#acl-config th.acl-groups { border-right: 1px solid @mainBorder; } /** * Mod_rewrite Warning */ #jform_sef_rewrite-lbl { background: url(../images/admin/icon-16-notice-note.png) right top no-repeat; } /** * Permission Rules */ #permissions-sliders .tip { background: @bodyBackground; border: 1px solid @mainBorder; } #permissions-sliders ul#rules, #permissions-sliders ul#rules ul { border: solid 0 @mainBorder; background: @bodyBackground; } ul#rules li .pane-sliders .panel h3.title { border: solid 0 @mainBorder; } #permissions-sliders ul#rules .pane-slider { border: solid 1px @mainBorder; } #permissions-sliders ul#rules li h3 { border: solid 1px @mainBorder; } #permissions-sliders ul#rules li h3.pane-toggler-down a { border: solid 0; } #permissions-sliders ul#rules .group-kind { color: @textColor; } #permissions-sliders ul#rules table.group-rules { border: solid 1px @mainBorder; } #permissions-sliders ul#rules table.group-rules td { border-right: solid 1px @mainBorder; border-bottom: solid 1px @mainBorder; } #permissions-sliders ul#rules table.group-rules th { background: @hoverBackground; border-right: solid 1px @mainBorder; border-bottom: solid 1px @mainBorder; color: @textColor; } ul#rules table.aclmodify-table { border: solid 1px @mainBorder; } ul#rules table.group-rules td label { border: solid 0 @mainBorder; } #permissions-sliders ul#rules .mypanel { border: solid 0 @mainBorder; } #permissions-sliders ul#rules table.group-rules td { background: @bodyBackground; } #permissions-sliders span.level { color: @mainBorder; background-image: none; } /* * Debug styles */ .check-0, table.adminlist tbody td.check-0 { background-color: @permissionDefault; } .check-a, table.adminlist tbody td.check-a { background-color: @permissionAllowed; } .check-d, table.adminlist tbody td.check-d { background-color: @permissionDenied; } /** * System Messages */ #system-message dd ul { color: @textColor; } #system-message dd.error ul { color: @textColor; } #system-message dd.message ul { color: @textColor; } #system-message dd.notice ul { color: @textColor; } /** CSS file for Accessible Admin Menu * based on Matt Carrolls' son of suckerfish * with javascript by Bill Tomczak */ /* Note: set up the font-size on the id and used 100% on the elements. If ul/li/a are different ems, then the shifting back via non-js keyboard doesn't work properly */ /** * Menu Styling */ #menu { /* this is on the main ul */ color: @textColor; } #menu ul.dropdown-menu { /* all lists */ #gradient > .vertical(@gradientTop, @gradientBottom); color: @textColor; } #menu ul.dropdown-menu li.dropdown-submenu { background: url(../images/j_arrow.png) no-repeat right 50%; } #menu ul.dropdown-menu li.divider { margin-bottom: 0; border-bottom: 1px dotted @mainBorder; } #menu a { color: @toolbarColor; background-repeat: no-repeat; background-position: left 50%; } #menu li { /* all list items */ border-right: 1px solid @mainBorder; background-color: transparent; } #menu li a:hover, #menu li a:focus { background-color: @hoverBackground; } #menu li.disabled a:hover, #menu li.disabled a:focus, #menu li.disabled a { color: @mainBorder; #gradient > .vertical(@gradientTop, @gradientBottom); } #menu li ul { /* second-level lists */ border: 1px solid @mainBorder; } #menu li li { /* second-level row */ background-color: transparent; } /** * Styling parents */ /* 1 level - sfhover */ #menu li.sfhover a { background-color: @hoverBackground; } /* 2 level - normal */ #menu li.sfhover li a { background-color: transparent; } /* 2 level - hover */ #menu li.sfhover li.sfhover a, #menu li li a:focus { background-color: @hoverBackground; } /* 3 level - normal */ #menu li.sfhover li.sfhover li a { background-color: transparent; } /* 3 level - hover */ #menu li.sfhover li.sfhover li.sfhover a, #menu li li li a:focus { background-color: @hoverBackground; } /* bring back the focus elements into view */ #menu li li a:focus, #menu li li li a:focus { background-color: @hoverBackground; } #menu li li li a:focus { background-color: @hoverBackground; } /** * Submenu styling */ #submenu { border-bottom: 1px solid @mainBorder; /* border-bottom plus padding-bottom is the technique */ /* This is the background befind the tabs */ /*background: @bodyBackground;*/ } #submenu li, #submenu span.nolink { #gradient > .vertical(@gradientTop, @gradientBottom); border: 1px solid @mainBorder; color: @linkColor; } #submenu li:hover, #submenu li:focus { background: @hoverBackground; } #submenu li.active, #submenu span.nolink.active { background: @bodyBackground; border-bottom: 1px solid @bodyBackground; } #submenu li.active a, #submenu span.nolink.active { color: #000; } .element-invisible { margin: 0; padding: 0; } /* -- Codemirror Editor ----------- */ div.CodeMirror-wrapping { border: 1px solid @mainBorder; } /* User Notes */ table.adminform tr.row0 { background-color: @bodyBackground; } ul.alternating > li:nth-child(odd) { background-color: @bodyBackground; } ul.alternating > li:nth-child(even) { background-color: @altBackground; } ol.alternating > li:nth-child(odd) { background-color: @bodyBackground; } ol.alternating > li:nth-child(even) { background-color: @altBackground; } /* Installer Database */ #installer-database, #installer-discover, #installer-update, #installer-warnings { border-top: 1px solid @mainBorder; } #installer-database p.warning { background: transparent url(../images/admin/icon-16-deny.png) center left no-repeat; } #installer-database p.nowarning { background: transparent url(../images/admin/icon-16-allow.png) center left no-repeat; } /* Override default bootstrap font-size */ .input-append, .input-prepend { font-size: 1.2em; } pages/_com_templates.less 0000604 00000001531 15245573345 0011537 0 ustar 00 // Template Menu Assignment #menu-assignment { position: relative; .menu-links { margin-top: 15px; margin-left: 0; -webkit-column-count: 4; -moz-column-count: 4; column-count: 4; -moz-column-gap: 15px; -webkit-column-gap: 15px; column-gap: 15px; > li { display: inline-block; vertical-align: top; margin-bottom: 15px; width: 100%; list-style: none; page-break-inside: avoid; break-inside: avoid; } } .menu-links-block { background-color: #fafafa; border: 1px solid #ddd; border-radius: 3px; padding: 15px; } } @media (max-width: @xl-max) { #menu-assignment .menu-links { -webkit-column-count: 3; -moz-column-count: 3; column-count: 3; } } @media (max-width: @md-max) { #menu-assignment .menu-links { -webkit-column-count: auto; -moz-column-count: auto; column-count: auto; } } pages/_com_cpanel.less 0000604 00000000561 15245573345 0011005 0 ustar 00 // com_cpanel .com_cpanel { .well { padding: 8px 14px; border: 1px solid rgba(0,0,0,0.05); .module-title.nav-header { color: #555; } > .row-striped, > .list-striped { margin: 0 -14px; > .row-fluid { padding: 8px 14px; [class*="span"] { margin-left: 0; } } > li { padding-left: 15px; padding-right: 15px; } } } } pages/_com_privacy.less 0000604 00000000563 15245573345 0011222 0 ustar 00 // com_privacy .com_privacy { .well { padding: 8px 14px; border: 1px solid rgba(0,0,0,0.05); .module-title.nav-header { color: #555; } > .row-striped, > .list-striped { margin: 0 -14px; > .row-fluid { padding: 8px 14px; [class*="span"] { margin-left: 0; } } > li { padding-left: 15px; padding-right: 15px; } } } } pages/_com_postinstall.less 0000604 00000000502 15245573345 0012112 0 ustar 00 // com_postinstall .com_postinstall { fieldset { background-color: #fafafa; border: 1px solid #ccc; border-radius: 5px; margin: 0 0 18px; padding: 4px 18px 18px; .btn { margin-top: 10px; } } legend { border: 0 none; display: inline-block; padding: 0 5px; margin-bottom: 0; width: auto; } } blocks/_forms.less 0000604 00000013433 15245573345 0010213 0 ustar 00 // Forms // Normalize LTR Label (JBS request) // -------------------------- .form-horizontal { // Float the labels left .control-label { padding-right: 5px; text-align: left; // Set a width for the spacer hr so it shows .spacer hr { width: 380px; @media (max-width: 420px) { width: 220px; } } } .field-spacer>.control-label{ width: auto; } #jform_catid_chzn { vertical-align: middle; } } .form-vertical { .control-label { > label { display: inline-block; .ie7-inline-block(); } } .controls { margin-left: 0; } } @media (max-width: @lg-max) { .form-horizontal-desktop { .control-label { float: none; width: auto; padding-right: 0; padding-top: 0; text-align: left; > label { display: inline-block; .ie7-inline-block(); } } .controls { margin-left: 0; } } } @media (max-width: @xl-max) { .row-fluid .row-fluid .form-horizontal-desktop { .control-label { float: none; width: auto; padding-right: 0; padding-top: 0; text-align: left; > label { display: inline-block; .ie7-inline-block(); } } .controls { margin-left: 0; } } } .form-inline-header { margin: 5px 0; .control-group, .control-label, .controls { display: inline-block; .ie7-inline-block(); } .control-label { width: auto; padding-right: 10px; } .controls { padding-right: 20px; } } /* Make fieldsets responsive */ fieldset[class^="form-"] { min-width: 100%; } /* Make fieldsets responsive in Firefox. See http://getbootstrap.com/css/#tables-responsive */ @-moz-document url-prefix() { fieldset[class^="form-"] { display: table-cell; } } /* Display checkboxes without bullets in list */ fieldset.checkboxes input { float: left; } fieldset.checkboxes li { list-style: none; } /* Make form elements responsive */ .control-group, .controls, .controls input[type="text"], .controls input[type="number"], .controls input[type="email"], .controls select, .controls textarea { max-width: 100%; } /* Min-width on buttons */ .controls .btn-group > .btn { min-width: 50px; margin-left: -1px; } .controls .btn-group.btn-group-yesno { width: 220px; max-width: 100%; > .btn { width: 50%; min-width: 40px; padding: 2px 0; } } /* Title field */ input.input-large-text { font-size: 18px; line-height: 22px; height: auto; } /* Customize Textarea Resizing */ textarea { resize: both; } textarea.vert { resize: vertical; } textarea.noResize { resize: none; } /* Repeatable SubForm */ .subform-repeatable { padding-right: 10px; > .btn-toolbar { margin: 0; .group-add { line-height: 26px; width: 56px; font-size: 13px; margin-left: 28px; } } } .subform-repeatable-group { margin-top: 20px; margin-left: 28px; border: 1px solid @inputBorder; padding: 8px 25px 15px; position: relative; border-radius: @inputBorderRadius; > .btn-toolbar { margin: 0; .btn-group { margin-right: 0px; margin-top: -1px; position: static; } .btn { font-size: 13px; line-height: 26px; background-color: #F3F3F3; position: absolute; span { vertical-align: middle; line-height: 11px; } &.btn-success { color: #378137; bottom: 0; right: 0; border-radius: @inputBorderRadius 0 0 0; border-width: 1px 0 0 1px; padding-top: 1px; .icon-plus:before { content: "]"; } } &.btn-danger { color: #942a25; top: 0; right: 0; border-radius: 0 0 0 @inputBorderRadius; border-width: 0 0 1px 1px; .icon-minus:before { content: "I"; } } &.btn-primary { color: #24748c; color: #333; right: 100%; top: 50%; margin-top: -27px; margin-right: 1px; border-radius: @inputBorderRadius 0 0 @inputBorderRadius; border-width: 1px 0 1px 1px; line-height: 52px; .icon-move:before { content: "Z"; } } [class^="icon-"], [class*=" icon-"] { margin: 0; } &:hover { background-color: #E6E6E6; } } } &:nth-child(odd) { } &:nth-child(even) { } &:last-of-type { } .control-group:last-of-type { margin-bottom: 10px; } } @media (max-width: @lg-max) { .subform-repeatable-group > .btn-toolbar .btn-group { margin-bottom: 10px; } } .subform-table-layout { .control-group { margin-bottom: 10px; &:last-of-type { margin-bottom: 0; } } .controls { padding-right: 20px; } .btn-group { } input { width: 100%; max-width: 206px; } table .btn-group { margin: 0 7px; } } @media (max-width: 1024px) { .subform-table-layout { .subform-repeatable { padding-right: 0; tbody td:last-of-type { text-align: right; padding-bottom: 15px; } } table, thead, tbody, th, td, tr { display: block; } table { border: 1px solid #ddd; } thead { th { position: absolute; top: -9999px; left: -9999px; &:last-of-type { position: static; width: 100% !important; text-align: right; box-sizing: border-box; border-left: 0; } } } tr { margin: 0; padding: 0; border: 0; } td { border: none; position: relative; padding-left: 50%; } tbody { td:first-of-type { padding-top: 15px; border-top: 1px solid #ddd; &:before {top:18px;} } } td:before { content: attr(data-column); position: absolute; top: 13px; left: 10px; padding-right: 10px; } } } /* Remove unneeded space between label and field in vertical forms */ .controls > .radio:first-child, .controls > .checkbox:first-child { padding-top: 0; .form-horizontal & { padding-top: 5px; } } /* Align btn-group to label */ .form-horizontal .controls > .radio.btn-group:first-child { padding-top: 0; } /* Align btn-group-yesno to label */ .form-horizontal .controls > .radio.btn-group-yesno:first-child { padding-top: 2px; } /* Fix field media width */ input.field-media-input { width: auto; } blocks/_tables.less 0000604 00000002140 15245573345 0010330 0 ustar 00 // Tables @media (max-width: @sm-max) { .pagination a { padding: 5px; } .btn-group.divider, .header .row-fluid .span3, .header .row-fluid .span7 { display: none; } .navbar .btn { margin: 0; } .btn-subhead { display: block; margin: 10px 0; } .subhead-collapse.collapse { height: 0; overflow: hidden; } .btn-toolbar .btn-wrapper { display: block; margin:0px 10px 5px 10px; } .btn-toolbar .btn-wrapper .btn { width: 100% !important; } .subhead { background: none repeat scroll 0 0 transparent; border-bottom: 0 solid darken(@wellBackground, 7%); } .btn-group + .btn-group { margin-left: 10px; } .login .chzn-single { width: 222px !important; } .login .chzn-container, .login .chzn-drop { width: 230px !important; } #toolbar [class^="icon-"], #toolbar [class*=" icon-"] { background-color: transparent; border-right: medium none; width: 10px; } } /* Tables */ table label { margin: 0; } td.has-context { // Fixes difference in height between normal and hover on cell with context height: 23px; } td.nowrap.has-context { width: 45%; } blocks/_utility-classes.less 0000604 00000000261 15245573345 0012216 0 ustar 00 // Utility Classes .break-word { word-break: break-all; word-wrap: break-word; } .disabled { cursor: default; background-image: none; .opacity(65); .box-shadow(none); } blocks/_custom.less 0000604 00000011357 15245573345 0010402 0 ustar 00 // Custom /* Links */ .j-links-separator { margin: 20px 0px; width: 100%; height: 0px; border-top: 2px solid #DDDDDD; } /* Main Container & System Debug Padding */ .container-main, #system-debug { padding-bottom: 50px; } /* Pagination in toolbar */ .pagination-toolbar { margin: 0; } .pagination-toolbar a { line-height: 26px; } /* Dropdown */ .pull-right > .dropdown-menu, .dropdown-reverse { left: auto; right: 0; } /* Nav list filters */ .nav-filters hr { margin: 5px 0; } /* Module Assignment Tab */ #assignment.tab-pane { min-height: 500px; } @media (max-width: @lg-max) { .container-fluid { padding-left: 10px; padding-right: 10px; } } @media (min-width: @md) { body { padding-top: 30px; } .nav-collapse.collapse.in { height: auto !important; } } @media (max-width: @md-max) { .container-fluid { padding-left: 0; padding-right: 0; } } @media (max-width: @sm-max) { .pagination a { padding: 5px; } .btn-group.divider, .header .row-fluid .span3, .header .row-fluid .span7 { display: none; } .btn-group + .btn-group { margin-left: 10px; } } /* Extension type labels */ .info-labels { margin-top: -5px; margin-bottom: 10px; } /* Sortable list*/ .sortable-handler.inactive { opacity: 0.3; filter: alpha(opacity=30); } /* Joomla and Extension update message */ .alert-joomlaupdate { text-align: center; button { vertical-align: baseline; } } .j-jed-message { line-height: 2em; color:#333333; } /* z-index issues */ .moor-box { z-index: 3; } .admin .chzn-container .chzn-drop { z-index: 1060; } /* Item associations */ .item-associations { margin: 0; } .item-associations li { list-style: none; display: inline-block; margin: 0 0 3px 0; } .item-associations li a { color: #ffffff; } /* Content Languages flag */ #flag img { padding-top: 6px; vertical-align: top; } /* Tweaking of tooltips */ .tooltip { max-width: 400px; } .tooltip-inner { max-width: none; text-align: left; text-shadow: none; } th .tooltip-inner { font-weight: normal; } .tooltip.hasimage { opacity: 1; } /* Permissions dropdown display */ #permissions-sliders { .chzn-container { margin-top: -5px; position: absolute; } .table td { padding: 8px 8px 9px; } } .img-preview > img { max-height: 100%; } .alert-no-items { margin-top: 20px; } @media (max-width: @md-max) { html[dir=rtl] #toolbar #toolbar-options, html[dir=rtl] #toolbar #toolbar-help, #toolbar #toolbar-options, #toolbar #toolbar-help { float: none; } } /* Widen the drop downs for the Permissions Field */ #permissions-sliders .input-small { width: 120px; } .editor { overflow: hidden; position: relative } .editor textarea.mce_editable { box-sizing: border-box; } /* For grid.boolean */ a.grid_false { display: inline-block; height: 16px; width: 16px; background-image: url('../images/admin/publish_r.png'); } a.grid_true { display: inline-block; height: 16px; width: 16px; background-image: url('../images/admin/icon-16-allow.png'); } /* Box-shadow from focused fields */ textarea, input, .uneditable-input { box-shadow: none !important; } textarea:focus, input:focus, .uneditable-input:focus { box-shadow: none; border: 1px solid @inputBorderHighlight; } /* Stats plugin */ .js-pstats-data-details dd { margin-left: 240px; } .js-pstats-data-details dt { width: 220px; } /* ACL Permission page */ #permissions, #page-permissions { table { td { vertical-align: middle; } select { margin-bottom: 0; } } } .js-stools-container-bar .btn-primary .caret { border-bottom: 4px solid @white; } .input-append .add-on, .input-append .btn, .input-append .btn-group > .dropdown-toggle, .input-prepend .add-on, .input-prepend .btn, .input-prepend .btn-group > .dropdown-toggle { -webkit-border-radius: 0 @inputBorderRadius @inputBorderRadius 0; -moz-border-radius: 0 @inputBorderRadius @inputBorderRadius 0; border-radius: 0 @inputBorderRadius @inputBorderRadius 0; } /* Removes Text Shadows */ .alert, .alert-options, .badge, .breadcrumb > li, .close, .input-append .add-on, .input-prepend .add-on, .label, .nav-header, .nav-list .nav-header, .nav-list > .active > a, .nav-list > .active > a:focus, .nav-list > .active > a:hover, .nav-list > li > a, .nav-tabs.nav-dark, .navbar .brand, .navbar .nav > li > a, .navbar-inverse .brand, .navbar-inverse .nav > li > a, .navbar-inverse .navbar-search .search-query.focused, .navbar-inverse .navbar-search .search-query:focus, .progress .bar, .subhead { text-shadow: none; } /* Popover minimum height - overwrite bootstrap default */ .popover-content { min-height: 33px; } /* Overrid font-weight 200 */ .lead, .navbar .brand, .hero-unit, .hero-unit .lead { font-weight: 400; } /* Stick permissions tab */ @media (min-width: @xl) { #permissions { .tab-content { position: sticky; top: 90px; } } } blocks/_login.less 0000604 00000002401 15245573345 0010166 0 ustar 00 // Login .view-login { background-color: @loginBackground; padding-top: 0; .container { width: 300px; position: absolute; top: 50%; left: 50%; margin-top: -206px; margin-left: -150px; } .navbar-fixed-bottom { padding-left: 20px; padding-right: 20px; text-align: center; } .navbar-fixed-bottom, .navbar-fixed-bottom a { color: #FCFCFC; } .navbar-inverse.navbar-fixed-bottom, .navbar-inverse.navbar-fixed-bottom a { color: @gray; } .well { padding-bottom: 0; } .login-joomla { position: absolute; left: 50%; height: 24px; width: 24px; margin-left: -12px; font-size: 22px; } .navbar-fixed-bottom { position: absolute; } .input-medium { width: 176px; } #lang_chzn { width: 233px !important; max-width: none; .chzn-single div { width:43px; } } .input-prepend .add-on, .controls .btn-group > .btn { margin-left:0; } } .navbar-inverse { color: @textColor; } .login { .btn-large { margin-top: 15px; } .form-inline .btn-group { display:block; } } @media (max-width: @sm-max) { .login .chzn-single { width: 222px !important; } .login .chzn-container, .login .chzn-drop { width: 230px !important; } } @media (max-width: @xs-max) { .view-login .navbar-fixed-bottom { display: none; } } blocks/_toolbar.less 0000604 00000005272 15245573345 0010531 0 ustar 00 // Toolbar /* Subhead */ .subhead { background: @wellBackground; border-bottom: 1px solid darken(@wellBackground, 7%); color: #0C192E; text-shadow: 0 1px 0 #FFF; margin-bottom: 10px; min-height: 51px; } .subhead-collapse { margin-bottom: 19px; } .subhead-collapse.collapse { height: auto; overflow: visible; } .btn-toolbar { margin-bottom: 5px; .btn-wrapper { display: inline-block; margin: 0 0 8px 5px; } } .subhead-fixed { position: fixed; width: 100%; top: 30px; z-index: 100; } @media (max-width: @md-max) { /* Fix ios scrolling inside bootstrap modals */ body { -webkit-overflow-scrolling: touch; } .subhead { margin-left: -20px; margin-right: -20px; padding-left: 10px; padding-right: 10px; } } .subhead h1 { font-size: 17px; font-weight: normal; margin-left: 10px; margin-top: 6px; } /* Toolbar */ #toolbar { margin-bottom: 2px; margin-top: 12px; .btn { line-height: 24px; margin-right: 4px; padding: 0 10px; } .btn-success { min-width: 148px; } .btn-primary, .btn-warning, .btn-danger, .btn-success, .btn-info, .btn-inverse { [class^="icon-"], [class*=" icon-"] { background-color: transparent; border-right: 0; border-left: 0; width: 16px; margin-left: 0; margin-right: 0; } } #toolbar-options, #toolbar-help { float: right; } [class^="icon-"], [class*=" icon-"] { background-color: @btnBackgroundHighlight; border-radius: 3px 0 0 3px; border-right: 1px solid @btnBorder; height: auto; line-height: inherit; margin: 0 6px 0 -10px; opacity: 1; text-shadow: none; width: 28px; z-index: -1; } iframe .btn-group .btn { margin-left: -1px !important; } } html[dir=rtl] #toolbar #toolbar-options, html[dir=rtl] #toolbar #toolbar-help { float: left; } @media (max-width: @md-max) { .subhead-fixed { position: static; width: auto; } } /* Subhead (toolbar) Collapse Button */ .btn-subhead { display: none; } @media (min-width: @sm) { #filter-bar { // Fix for Firefox height: 29px; } } @media (max-width: @sm-max) { .navbar .btn { margin: 0; } .btn-subhead { display: block; margin: 10px 0; } .subhead-collapse.collapse { height: 0; overflow: hidden; } .btn-toolbar .btn-wrapper { display: block; margin:0px 10px 5px 10px; } .btn-toolbar .btn-wrapper .btn { width: 100% !important; } .subhead { background: none repeat scroll 0 0 transparent; border-bottom: 0 solid darken(@wellBackground, 7%); } #toolbar [class^="icon-"], #toolbar [class*=" icon-"] { background-color: transparent; border-right: medium none; width: 10px; } } @media (max-width: @xs-max) { .view-login .navbar-fixed-bottom { display: none; } } blocks/_quickicons.less 0000604 00000000731 15245573345 0011232 0 ustar 00 // Quick-icons .quick-icons { font-size: 14px; margin-bottom: 20px; .nav-header { margin: 12px 0 5px; font-size: 13px; &:first-child { margin: 0 0 5px; } } [class^="icon-"], [class*=" icon-"] { margin-right: 9px; &:before { font-size: 16px; margin-bottom: 20px; line-height: 18px; } } } html[dir=rtl] .quick-icons .nav-list [class^="icon-"], html[dir=rtl] .quick-icons .nav-list [class*=" icon-"] { margin-left: 9px; margin-right: 0; } blocks/_header.less 0000604 00000001665 15245573345 0010321 0 ustar 00 // header .header { background-color: @headerBackground; border-top: 1px solid rgba(255, 255, 255, 0.2); padding: 8px 25px; } @media (max-width: @md-max) { .header { padding: 4px 18px; margin-left: -20px; margin-right: -20px; } } .header .navbar-search { margin-top: 0; } @media (max-width: @lg-max) { .header .navbar-search { border-top: 0; border-bottom: 0; .box-shadow(none); } } /* Logo */ .container-logo { float: right; text-align: right; } .logo { width: auto; max-width: 100%; max-height: 36px; height: auto; } /* Page Title */ .page-title { color: white; font-weight: normal; font-size: 20px; line-height: 36px; margin: 0; [class^="icon-"], [class*=" icon-"] { margin-right: 16px; } } @media (max-width: @md-max) { .container-logo { display: none; } .page-title { font-size: 18px; line-height: 28px; [class^="icon-"], [class*=" icon-"] { margin-right: 10px; } } } blocks/_chzn-override.less 0000604 00000013243 15245573345 0011643 0 ustar 00 .chzn-container { .chzn-drop { border-radius: 0 0 3px 3px; } } // Fluid width .control-group .chzn-container { max-width: 100%; .chzn-choices li.search-field, .chzn-choices li.search-field input { // Fix for #13594 width: 100% !important; } } .chzn-container-single { .chzn-single { background-color: @white; background-clip: inherit; background-image: none; border: 1px solid @inputBorder; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 3px; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05); height: auto; line-height: 26px; div { background-color: @btnBackground; border-left: 1px solid @inputBorder; bottom: 0; height: auto; text-align: center; width: 28px; b { background-image: none; display: inline-block; &:after { content: '\E011'; font-family: IcoMoon; } } } abbr { background: none; right: 36px; top: 0; &:before { font-family: IcoMoon; content: '\0049'; font-size: 10px; line-height: 26px; } &:hover { color: #000; } } } .chzn-search { &:after { content: '\0053'; font-family: IcoMoon; position: relative; right: 20px; top: 2px; } input[type="text"] { background: none; border-radius: @inputBorderRadius; border: 1px solid @inputBorder; box-shadow: none; height: 25px; &:focus { border-color: @inputBorderHighlight; } } } .chzn-drop { background-clip: padding-box; border-color: @inputBorderHighlight; border-radius: 0 0 3px 3px; } } .chzn-container-active { .chzn-single { color: @inputBorderHighlight; } &.chzn-with-drop { .chzn-single { background-image: none; border: 1px solid @inputBorderHighlight; border-bottom-left-radius: 0; border-bottom-right-radius: 0; div { background-color: @btnBackground; border-bottom: 1px solid @inputBorder; border-bottom-left-radius: @inputBorderRadius; border-left: 1px solid @inputBorder; b { &:after { content: '\E00F'; font-family: IcoMoon; } } } } } &.chzn-container-multi { .chzn-choices { border: 1px solid @inputBorderHighlight; box-shadow: none; } } } .chzn-container .chzn-results { background-color: @white; border-radius: 0 0 @inputBorderRadius @inputBorderRadius; margin: 0; padding: 0; li.highlighted { background-color: @inputBorderHighlight; background-image: none; } } .chzn-color[rel="value_"] div { background-color: @btnBackground; border-left: 1px solid @inputBorder; } .chzn-color-state.chzn-single, .chzn-color.chzn-single[rel="value_0"], .chzn-color.chzn-single[rel="value_1"], .chzn-color-state.chzn-single[rel="value_-1"], .chzn-color-state.chzn-single[rel="value_-2"], .chzn-color.chzn-single[rel="value_hide"], .chzn-color.chzn-single[rel="value_show_no_link"], .chzn-color.chzn-single[rel="value_show_with_link"] { div { background-color: transparent !important; border: none !important; } } .chzn-container-active .chzn-choices { border: 1px solid @inputBorderHighlight; } .chzn-container-multi { .chzn-choices { background-image: none; border-radius: @inputBorderRadius; border: 1px solid @inputBorder; li.search-choice { background-color: @inputBorderHighlight; background-image: none; border: 0; box-shadow: none; color: #fff; line-height: 20px; padding: 0 7px; .search-choice-close { color: #f5f5f5; display: inline-block; margin-left: 5px; position: relative; top: 0; left: 0; background-image: none; font-size: inherit; &:hover { text-decoration: none; } &:before { font-family: IcoMoon; content: '\004A'; position: relative; right: 1px; top: 0; } } } } } .js-stools .js-stools-container-bar .js-stools-field-filter .chzn-container { margin: 1px 0; padding: 0 !important; } /* Chosen color styles */ .chzn-color.chzn-single[rel="value_1"], .chzn-color-reverse.chzn-single[rel="value_0"], .chzn-color-state.chzn-single[rel="value_1"], .chzn-color.chzn-single[rel="value_show_no_link"], .chzn-color.chzn-single[rel="value_show_with_link"] { .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); color: #ffffff; } .chzn-color-state.chzn-single[rel="value_0"], .chzn-color-state.chzn-single[rel="value_-2"] { .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); color: #ffffff; } blocks/_media.less 0000604 00000011770 15245573345 0010146 0 ustar 00 // Media /* Spacing below buttons in media manager */ .ventral-space{ margin-bottom: 5px; } /* Media Manager folder icon override */ ul.manager .height-50 .icon-folder-2 { height: 35px; width: 35px; line-height: 35px; font-size: 30px; } #imageForm { .well { margin-bottom: 5px; } } .thumbnails-media { @thumbSize:100px; .thumbnail { background-color: #f4f4f4; border-radius: @inputBorderRadius; border: 0; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05) inset; padding: 0px; height: @thumbSize; width: @thumbSize; margin: 8px; position: relative; text-align: center; overflow: hidden; .close { background-color: #ccc; border-left: 1px solid rgba(0, 0, 0, 0.1); height: 22px; line-height: 22px; opacity: 0.3; text-align: center; width: 22px; top: 0; right: 0; &:hover { background-color: #bbb; } } *, *:before { -webkit-transition: all 0.2s ease; transition: all 0.2s ease; -webkit-box-sizing: border-box; box-sizing: border-box; } input[type="radio"], input[type="checkbox"] { margin: 0; opacity: 0.55; position: absolute; top: 5px; left: 5px; } .controls, .imginfoBorder { display: none; } } .imgThumb { position: relative; z-index: 1; width:100%; display: inline-block; input { display: none; } label, .imgThumbInside { display: block; line-height: @thumbSize; position: relative; width: 100%; border-radius: @inputBorderRadius; overflow: hidden; &:before { font-family: "IcoMoon"; font-style: normal; content: 'G'; position: absolute; top: 0; right: 0; background-color: @btnSuccessBackground; color: #fff; line-height: 26px; width: 26px; -webkit-transform: scale(0.5); transform: scale(0.5); opacity: 0; border-color: rgba(0, 0, 0, 0.2); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); border-radius: 0 @inputBorderRadius; } } img { width: auto; } } .selected, .imgInput { :checked + label, .imgThumbInside { background-color: #ddd; &:before { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } &:after { position: absolute; top: 0; left: 0; right: 0; bottom: 0; content: ''; border: 3px solid @btnSuccessBackground; border-radius: 5px; } } } .imgDelete a.close, .imgPreview a { padding: 0; position: absolute; left: 0; z-index: 1; height: 26px; width: 26px; } .imgPreview a { width: 100%; } .imgDelete a.close { background-color: @btnDangerBackground; border-color: @btnDangerBackground rgba(0, 0, 0, 0.2) rgba(0, 0, 0, 0.2) @btnDangerBackground; top: 0; line-height: 28px; font-size: 12px; padding-left: 1px; color: #fff; border-bottom-right-radius: @inputBorderRadius; border-top-left-radius: @inputBorderRadius; z-index: 10; opacity: 0; -webkit-transform: scale(0.5); transform: scale(0.5); &:hover { background-color: darken(@btnDangerBackground, 15%); } } .thumbnail:hover .imgDelete a.close { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } .imgPreview a, .imgDetails { position: absolute; left:0; text-align: left; background-color: #fff; border-color: rgba(0, 0, 0, 0.2); bottom: 0; line-height: 26px; border: 1px solid rgba(0, 0, 0, 0.1); border-width: 1px; border-radius: 0 @inputBorderRadius 0 0; z-index: 1; &:hover { background-color: #eee; } } .imgDetails { padding: 0 5px; line-height: 20px; color: #555; } .imgFolder { span { line-height: 90px; font-size: 38px; margin: 0; width: auto; } } .imgFolder + .imgDetails { color: inherit; } } // Media Manager .com_media { .media a + a { margin-left: -1px; } .tree-holder { padding: 0 15px; } } #folderframe.thumbnail { border: 0; box-shadow: none; padding: 0; } #mediamanager-form { margin: 0 -10px; overflow-x: hidden; > .muted { padding: 0px; } .checkbox { padding-left: 30px; margin-bottom: 15px; input { margin-top: 3px; } } .thumbnails { margin: 0 -8px; overflow-x: hidden; .thumbnail { height: 120px; width: 120px; margin: 8px } .imgThumb label, .imgTotal { line-height: 120px; } } .icon-search::before { padding-right: 5px; padding-left: 1px; } .height-50 { background-color: #fafafa; height: 77px; position: relative; z-index: 1; width:100%; display: inline-block; a, .icon-folder-2 { display: inline-block; line-height: 75px; margin-top: -1px; } a { &:after { bottom: 0; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08) inset; content: ""; display: block; left: 0; overflow: hidden; position: absolute; right: 0; top: 0; } } .icon-folder-2 { font-size: 40px; } } } .uploadform { margin-top: 20px; } blocks/_treeselect.less 0000604 00000002421 15245573345 0011217 0 ustar 00 // Tree Select ul.treeselect, ul.treeselect li { margin: 0; padding: 0; } ul.treeselect { margin-top: 8px; } ul.treeselect li { padding: 2px 10px 2px; list-style: none; } ul.treeselect i.treeselect-toggle { line-height: 18px; } ul.treeselect label { font-size: 1em; margin-left: 8px; } ul.treeselect label.nav-header { padding: 0; } ul.treeselect input { margin: 2px 0 0 8px; } ul.treeselect .treeselect-menu { margin: 0 6px; } ul.treeselect ul.dropdown-menu { margin: 0; } ul.treeselect ul.dropdown-menu li { padding: 0 5px; border: none; } .tree-holder { .folder-url, .file { position: relative; background-color: #fefefe; margin-bottom: 4px; padding: 0 10px; line-height: 32px; border: 1px solid rgba(0, 0, 0, 0.08); } .folder-url, .folder-url:hover, .folder-url:focus { font-weight: bold; background-color: #f5f5f5; color: @linkColor; } .active { background-color: @linkColor; color: #fff; box-shadow: -3px 0 0 #36a2ff !important; &.folder-url { background-color: #f5f5f5; color: @linkColor; } &.file:hover { background-color: #3071a9; } } ul { ul { box-shadow: -3px 0 0 rgba(0, 0, 0, 0.08); padding-right: 0; .folder-url, .file { box-shadow: -3px 0 0 @linkColor; border-left: 0; } } } } blocks/_navbar.less 0000604 00000011101 15245573345 0010324 0 ustar 00 // Navbar body .navbar, body .navbar-fixed-top { margin-bottom: 0; } .navbar-inner { min-height: 0; background: @navbarBackground; background-image: none; filter: none; .container-fluid { padding-left: 10px; padding-right: 10px; font-size: 15px; } } .navbar-inverse { .navbar-inner { background: @navbarInverseBackground; background-image: none; filter: none; } } .navbar { .navbar-text { line-height: 30px; } .admin-logo { float: left; padding: 7px 12px 0px 15px; font-size: 16px; color: @gray; &:hover { color: @grayDark; } .navbar-inverse& { color: #d9d9d9; &:hover { color: #ffffff; } } } .brand { float: right; display: block; padding: 6px 10px; margin-left: -20px; font-size: inherit; font-weight: normal; &:hover, &:focus { text-decoration: none; } } .nav > li > a { padding: 6px 10px; &:hover { color: white; } &:hover span.carot { border-bottom-color: #fff; border-top-color: #fff; } } .dropdown-menu, .nav-user { font-size: 13px; } .nav-user .dropdown-menu li span { padding-left: 10px; } .nav > li ul { overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; -moz-overflow-scrolling: touch; -ms-overflow-scrolling: touch; -o-overflow-scrolling: touch; overflow-scrolling: touch; height: auto; max-height: 500px; margin: 0; &::-webkit-scrollbar { -webkit-appearance: none; width: 7px; } &::-webkit-scrollbar-thumb { border-radius: 4px; background-color: rgba(0,0,0,.5); -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5); } } .nav > li > .dropdown-menu:after { display: none; } .nav > .dropdown.open:after { content: ''; display: inline-block; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid #fff; position: absolute; top: 25px; left: 10px; z-index: 1001; } .empty-nav { display: none; } } .navbar-fixed-top, .navbar-static-top { .navbar-inner { .box-shadow(none); } } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus, .dropdown-submenu:hover > a, .dropdown-submenu:focus > a { background-image: none; } // Fixed to bottom .navbar-fixed-bottom { bottom: 0; .navbar-inner { .box-shadow(none); } } .navbar .btn-navbar { background: #17568c; border: 1px solid #0D2242; margin-bottom: 2px; } @media (max-width: @md-max) { .navbar .admin-logo { margin-left: 10px; padding: 9px 9px 0 9px; } } /* Search Module */ .navbar-search .search-query { background: rgba(255, 255, 255, 0.3); } @media (max-width: @lg-max) { .navbar { .nav { font-size: 13px; margin: 0 2px 0 0; > li { > a { padding: 6px; } } } } } @media (max-width: @md-max) { .navbar-search.pull-right { float: none; text-align: center; } } @media (max-width: 738px) { .navbar { .brand { font-size: 16px; } } } // Navbar .nav-collapse .nav li a, .dropdown-menu a { background-image: none; } .nav-collapse .dropdown-menu > li { img { max-width: none; } } @media (max-width: @navbarCollapseWidth) { .navbar-fixed-top .navbar-inner, .navbar-fixed-top .navbar-inner .container-fluid { padding: 0; } .navbar .brand { margin-top: 2px; float: none; text-align: center; } .navbar .btn-navbar { margin-top: 3px; margin-right: 3px; margin-bottom: 3px; } .nav-collapse .nav .nav-header { color: @white; } .nav-collapse .nav, .navbar .nav-collapse .nav.pull-right { margin: 0; } .nav-collapse .dropdown-menu { margin: 0; } .nav-collapse .dropdown-menu > li > span { display: block; padding: 4px 15px; } .navbar-inverse .nav-collapse .dropdown-menu > li > span { color: @navbarInverseLinkColor; } .nav-collapse .nav > li > a.dropdown-toggle { background-color: rgba(255, 255, 255, 0.07); font-size: 12px; font-weight: bold; color: @grayLighter; text-transform: uppercase; padding-left: 15px; } .nav-collapse .nav li a { margin-bottom: 0; border-top: 1px solid rgba(255, 255, 255, 0.25); border-bottom: 1px solid rgba(0, 0, 0, 0.5); } .nav-collapse .nav li ul li ul.dropdown-menu, .nav-collapse .nav li ul li:hover ul.dropdown-menu, .nav-collapse .caret { display: none !important; } .nav-collapse .nav > li > a, .nav-collapse .dropdown-menu a { font-size: 15px; font-weight: normal; color: @white; .border-radius(0); } .navbar .nav-collapse .nav > li > .dropdown-menu::before, .navbar .nav-collapse .nav > li > .dropdown-menu::after, .navbar .nav-collapse .dropdown-submenu > a::after { display: none; } .nav-collapse .dropdown-menu li + li a { margin-bottom: 0; } } blocks/_modals.less 0000604 00000001417 15245573345 0010343 0 ustar 00 // Modals body.modal-open { -ms-overflow-style: none; } .modal-header { padding: 0 20px; text-align: left; h3 { font-weight: normal; line-height: 50px; } .close { width: 50px; margin-top: 0; margin-right: -15px; font-size: 2rem; line-height: 50px; border-left: 1px solid #ccc; } } .modal-body { padding: 0; width: 100%; height: auto; max-height: none; .container-fluid { padding-top: 15px; padding-bottom: 15px; } } .modal-footer { clear: both; } .contentpane { padding: 10px; height: auto } @media (min-width: @md) { .row-fluid .modal-batch [class*="span"] { margin-left: 0; } } // Component pop-up .container-popup { padding: 10px; } // Media modal .field-media-wrapper iframe { max-height: 75vh; } blocks/_status.less 0000604 00000001500 15245573345 0010400 0 ustar 00 // Status #status { background: #ebebeb; border-top: 1px solid #dedede; padding: 4px 10px; .box-shadow(~"0 0 3px rgba(0, 0, 0, 0.08)"); color: #626262; .btn-group { margin: 0; } .btn-group.separator:after { content: ' '; display: block; float: left; background: #ADADAD; margin: 0 10px; height: 15px; width: 1px; } .btn-toolbar, p { margin: 0px; } .btn-toolbar, .btn-group { font-size: 12px; } a { color: #626262; } .badge { margin-right: .25em; } } /* Status Module in top position */ #status.status-top { background: @headerBackground; .box-shadow(~"0px 1px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px rgba(0, 0, 0, 0.3) inset, 0px -1px 0px rgba(0, 0, 0, 0.3)"); border-top: 0; color: @navbarInverseText; padding: 2px 20px 6px 20px; a { color: @navbarInverseLinkColor; } } blocks/_editors.less 0000604 00000000145 15245573345 0010532 0 ustar 00 // Editors .CodeMirror { height: calc(~"100vh - 400px"); min-height: 400px; max-height: 800px; } blocks/_sidebar.less 0000604 00000004476 15245573345 0010505 0 ustar 00 // Sidebar .sidebar-nav .nav-list { padding-left: 25px; padding-right: 25px; } .sidebar-nav .nav-list > li > a { color: #555; padding: 3px 25px; margin-left: -26px; margin-right: -26px; } .sidebar-nav .nav-list > li.active > a { color: #fff; margin-right: -26px; } .sidebar-nav .nav-list > li > a:focus, .sidebar-nav .nav-list > li > a:hover { text-decoration: none; color: #fff; background-color: #2d6ca2; text-shadow: none; } /* For collapsible sidebar */ .j-sidebar-container { position: absolute; display: block; left: -16.5%; width: 16.5%; margin: -18px 0 0 -1px; padding-top: 28px; padding-bottom: 40px; clear: both; background-color: @wellBackground; border-bottom: 1px solid darken(@wellBackground, 7%); border-right: 1px solid darken(@wellBackground, 7%); .border-radius(0 0 @baseBorderRadius 0); &.j-sidebar-hidden { left: -16.5%; } &.j-sidebar-visible { left: 0; } .filter-select { padding: 0 14px; } } .j-toggle-sidebar-header { h3 { font-weight: normal; padding: 0 15px; } } .j-toggle-button-wrapper { position: absolute; display: block; top: 7px; padding: 0; &.j-toggle-hidden { right: -24px; } &.j-toggle-visible { right: 7px; } } .j-toggle-sidebar-button { font-size: 16px; color: @linkColor; text-decoration: none; cursor: pointer; &:hover { color: @linkColorHover; } } #system-message-container, #j-main-container { padding: 0 0 0 5px; min-height: 0; } #system-message-container.j-toggle-main, #j-main-container.j-toggle-main, #system-debug.j-toggle-main { float: right; } @media (min-width: @md) { .j-toggle-transition { .transition(all 0.3s ease); } } @media (max-width: @lg-max) { .j-toggle-button-wrapper.j-toggle-hidden { right: -20px; } } @media (max-width: @md-max) { .j-sidebar-container { position: relative; width: 100%; margin: 0 0 20px 0; padding: 0; background: transparent; border-right: 0; border-bottom: 0; } .j-sidebar-container.j-sidebar-hidden { margin-left: 16.5%; } .j-sidebar-container.j-sidebar-visible { margin-left: 0; } .j-toggle-sidebar-header, .j-toggle-button-wrapper { display: none; } .view-login { select { width: 232px; } } } @media (max-width: 420px) { .j-sidebar-container { margin: 0; } .view-login { .input-medium { width: 180px; } select { width: 232px } } } blocks/_global.less 0000604 00000002176 15245573345 0010327 0 ustar 00 // Global /* Body */ html { height: 100%; } body { height: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; box-sizing: border-box; } a:hover, a:active, a:focus { outline: none; } /* Typography */ .small { font-size: 11px; } .row-even .small, .row-odd .small, .row-even .small a, .row-odd .small a { color: #888; } /* Page Title in Content */ .content-title { font-size: 24px; font-weight: normal; line-height: 26px; margin-top: 0; } /* Content */ .well .page-header { margin: -10px 0 18px 0; padding-bottom: 5px; } .well .module-title.nav-header { padding: 0 0 7px; margin: 0; font-size: 13px; } .well .row-even p, .well .row-odd p { margin-bottom: 0; } /* Headings */ h1, h2, h3, h4, h5, h6 { margin: (@baseLineHeight / 1.5) 0; } h1 { font-size: 26px; line-height: 28px; } h2 { font-size: 22px; line-height: 24px; } h3 { font-size: 18px; line-height: 20px; } h4 { font-size: 14px; line-height: 16px; } h5 { font-size: 13px; line-height: 15px; } h6 { font-size: 12px; line-height: 14px; } .truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } bootstrap/responsive-768px-979px.less 0000604 00000000717 15245573345 0013454 0 ustar 00 // // Responsive: Tablet to desktop // -------------------------------------------------- @media (min-width: 768px) and (max-width: 979px) { // Fixed grid #grid > .core(@gridColumnWidth768, @gridGutterWidth768); // Fluid grid #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); // Input grid #grid > .input(@gridColumnWidth768, @gridGutterWidth768); // No need to reset .thumbnails here since it's the same @gridGutterWidth } bootstrap/button-groups.less 0000604 00000013115 15245573345 0012313 0 ustar 00 // // Button groups // -------------------------------------------------- // Make the div behave like a button .btn-group { position: relative; display: inline-block; .ie7-inline-block(); font-size: 0; // remove as part 1 of font-size inline-block hack vertical-align: middle; // match .btn alignment given font-size hack above white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page) .ie7-restore-left-whitespace(); } // Space out series of button groups .btn-group + .btn-group { margin-left: 5px; } // Optional: Group multiple button groups together for a toolbar .btn-toolbar { font-size: 0; // Hack to remove whitespace that results from using inline-block margin-top: @baseLineHeight / 2; margin-bottom: @baseLineHeight / 2; > .btn + .btn, > .btn-group + .btn, > .btn + .btn-group { margin-left: 5px; } } // Float them, remove border radius, then re-add to first and last elements .btn-group > .btn { position: relative; .border-radius(0); } .btn-group > .btn + .btn { margin-left: -1px; } .btn-group > .btn, .btn-group > .dropdown-menu, .btn-group > .popover { font-size: @baseFontSize; // redeclare as part 2 of font-size inline-block hack } // Reset fonts for other sizes .btn-group > .btn-mini { font-size: @fontSizeMini; } .btn-group > .btn-small { font-size: @fontSizeSmall; } .btn-group > .btn-large { font-size: @fontSizeLarge; } // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match .btn-group > .btn:first-child { margin-left: 0; .border-top-left-radius(@baseBorderRadius); .border-bottom-left-radius(@baseBorderRadius); } // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it .btn-group > .btn:last-child, .btn-group > .dropdown-toggle { .border-top-right-radius(@baseBorderRadius); .border-bottom-right-radius(@baseBorderRadius); } // Reset corners for large buttons .btn-group > .btn.large:first-child { margin-left: 0; .border-top-left-radius(@borderRadiusLarge); .border-bottom-left-radius(@borderRadiusLarge); } .btn-group > .btn.large:last-child, .btn-group > .large.dropdown-toggle { .border-top-right-radius(@borderRadiusLarge); .border-bottom-right-radius(@borderRadiusLarge); } // On hover/focus/active, bring the proper btn to front .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active { z-index: 2; } // On active and open, don't show outline .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } // Split button dropdowns // ---------------------- // Give the line between buttons some depth .btn-group > .btn + .dropdown-toggle { padding-left: 8px; padding-right: 8px; .box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)"); *padding-top: 5px; *padding-bottom: 5px; } .btn-group > .btn-mini + .dropdown-toggle { padding-left: 5px; padding-right: 5px; *padding-top: 2px; *padding-bottom: 2px; } .btn-group > .btn-small + .dropdown-toggle { *padding-top: 5px; *padding-bottom: 4px; } .btn-group > .btn-large + .dropdown-toggle { padding-left: 12px; padding-right: 12px; *padding-top: 7px; *padding-bottom: 7px; } .btn-group.open { // The clickable button for toggling the menu // Remove the gradient and set the same inset shadow as the :active state .dropdown-toggle { background-image: none; .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)"); } // Keep the hover's background when dropdown is open .btn.dropdown-toggle { background-color: @btnBackgroundHighlight; } .btn-primary.dropdown-toggle { background-color: @btnPrimaryBackgroundHighlight; } .btn-warning.dropdown-toggle { background-color: @btnWarningBackgroundHighlight; } .btn-danger.dropdown-toggle { background-color: @btnDangerBackgroundHighlight; } .btn-success.dropdown-toggle { background-color: @btnSuccessBackgroundHighlight; } .btn-info.dropdown-toggle { background-color: @btnInfoBackgroundHighlight; } .btn-inverse.dropdown-toggle { background-color: @btnInverseBackgroundHighlight; } } // Reposition the caret .btn .caret { margin-top: 8px; margin-left: 0; } // Carets in other button sizes .btn-large .caret { margin-top: 6px; } .btn-large .caret { border-left-width: 5px; border-right-width: 5px; border-top-width: 5px; } .btn-mini .caret, .btn-small .caret { margin-top: 8px; } // Upside down carets for .dropup .dropup .btn-large .caret { border-bottom-width: 5px; } // Account for other colors .btn-primary, .btn-warning, .btn-danger, .btn-info, .btn-success, .btn-inverse { .caret { border-top-color: @white; border-bottom-color: @white; } } // Vertical button groups // ---------------------- .btn-group-vertical { display: inline-block; // makes buttons only take up the width they need .ie7-inline-block(); } .btn-group-vertical > .btn { display: block; float: none; max-width: 100%; .border-radius(0); } .btn-group-vertical > .btn + .btn { margin-left: 0; margin-top: -1px; } .btn-group-vertical > .btn:first-child { .border-radius(@baseBorderRadius @baseBorderRadius 0 0); } .btn-group-vertical > .btn:last-child { .border-radius(0 0 @baseBorderRadius @baseBorderRadius); } .btn-group-vertical > .btn-large:first-child { .border-radius(@borderRadiusLarge @borderRadiusLarge 0 0); } .btn-group-vertical > .btn-large:last-child { .border-radius(0 0 @borderRadiusLarge @borderRadiusLarge); } bootstrap/mixins.less 0000604 00000054774 15245573345 0011012 0 ustar 00 // // Mixins // -------------------------------------------------- // UTILITY MIXINS // -------------------------------------------------- // Clearfix // -------- // For clearing floats like a boss h5bp.com/q .clearfix { *zoom: 1; &:before, &:after { display: table; content: ""; // Fixes Opera/contenteditable bug: // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952 line-height: 0; } &:after { clear: both; } } // Webkit-style focus // ------------------ .tab-focus() { // Default outline: thin dotted #333; // Webkit outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } // Center-align a block level element // ---------------------------------- .center-block() { display: block; margin-left: auto; margin-right: auto; } // IE7 inline-block // ---------------- .ie7-inline-block() { *display: inline; /* IE7 inline-block hack */ *zoom: 1; } // IE7 likes to collapse whitespace on either side of the inline-block elements. // Ems because we're attempting to match the width of a space character. Left // version is for form buttons, which typically come after other elements, and // right version is for icons, which come before. Applying both is ok, but it will // mean that space between those elements will be .6em (~2 space characters) in IE7, // instead of the 1 space in other browsers. .ie7-restore-left-whitespace() { *margin-left: .3em; &:first-child { *margin-left: 0; } } .ie7-restore-right-whitespace() { *margin-right: .3em; } // Sizing shortcuts // ------------------------- .size(@height, @width) { width: @width; height: @height; } .square(@size) { .size(@size, @size); } // Placeholder text // ------------------------- .placeholder(@color: @placeholderText) { &:-moz-placeholder { color: @color; } &:-ms-input-placeholder { color: @color; } &::-webkit-input-placeholder { color: @color; } } // Text overflow // ------------------------- // Requires inline-block or block for proper styling .text-overflow() { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } // CSS image replacement // ------------------------- // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 .hide-text { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } // FONTS // -------------------------------------------------- #font { #family { .serif() { font-family: @serifFontFamily; } .sans-serif() { font-family: @sansFontFamily; } .monospace() { font-family: @monoFontFamily; } } .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { font-size: @size; font-weight: @weight; line-height: @lineHeight; } .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { #font > #family > .serif; #font > .shorthand(@size, @weight, @lineHeight); } .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { #font > #family > .sans-serif; #font > .shorthand(@size, @weight, @lineHeight); } .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { #font > #family > .monospace; #font > .shorthand(@size, @weight, @lineHeight); } } // FORMS // -------------------------------------------------- // Block level inputs .input-block-level { display: block; width: 100%; min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border) .box-sizing(border-box); // Makes inputs behave like true block-level elements } // Mixin for form field states .formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) { // Set the text color .control-label, .help-block, .help-inline { color: @textColor; } // Style inputs accordingly .checkbox, .radio, input, select, textarea { color: @textColor; } input, select, textarea { border-color: @borderColor; .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work &:focus { border-color: darken(@borderColor, 10%); @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%); .box-shadow(@shadow); } } // Give a small background color for input-prepend/-append .input-prepend .add-on, .input-append .add-on { color: @textColor; background-color: @backgroundColor; border-color: @textColor; } } // CSS3 PROPERTIES // -------------------------------------------------- // Border Radius .border-radius(@radius) { -webkit-border-radius: @radius; -moz-border-radius: @radius; border-radius: @radius; } // Single Corner Border Radius .border-top-left-radius(@radius) { -webkit-border-top-left-radius: @radius; -moz-border-radius-topleft: @radius; border-top-left-radius: @radius; } .border-top-right-radius(@radius) { -webkit-border-top-right-radius: @radius; -moz-border-radius-topright: @radius; border-top-right-radius: @radius; } .border-bottom-right-radius(@radius) { -webkit-border-bottom-right-radius: @radius; -moz-border-radius-bottomright: @radius; border-bottom-right-radius: @radius; } .border-bottom-left-radius(@radius) { -webkit-border-bottom-left-radius: @radius; -moz-border-radius-bottomleft: @radius; border-bottom-left-radius: @radius; } // Single Side Border Radius .border-top-radius(@radius) { .border-top-right-radius(@radius); .border-top-left-radius(@radius); } .border-right-radius(@radius) { .border-top-right-radius(@radius); .border-bottom-right-radius(@radius); } .border-bottom-radius(@radius) { .border-bottom-right-radius(@radius); .border-bottom-left-radius(@radius); } .border-left-radius(@radius) { .border-top-left-radius(@radius); .border-bottom-left-radius(@radius); } // Drop shadows .box-shadow(@shadow) { -webkit-box-shadow: @shadow; -moz-box-shadow: @shadow; box-shadow: @shadow; } // Transitions .transition(@transition) { -webkit-transition: @transition; -moz-transition: @transition; -o-transition: @transition; transition: @transition; } .transition-delay(@transition-delay) { -webkit-transition-delay: @transition-delay; -moz-transition-delay: @transition-delay; -o-transition-delay: @transition-delay; transition-delay: @transition-delay; } .transition-duration(@transition-duration) { -webkit-transition-duration: @transition-duration; -moz-transition-duration: @transition-duration; -o-transition-duration: @transition-duration; transition-duration: @transition-duration; } // Transformations .rotate(@degrees) { -webkit-transform: rotate(@degrees); -moz-transform: rotate(@degrees); -ms-transform: rotate(@degrees); -o-transform: rotate(@degrees); transform: rotate(@degrees); } .scale(@ratio) { -webkit-transform: scale(@ratio); -moz-transform: scale(@ratio); -ms-transform: scale(@ratio); -o-transform: scale(@ratio); transform: scale(@ratio); } .translate(@x, @y) { -webkit-transform: translate(@x, @y); -moz-transform: translate(@x, @y); -ms-transform: translate(@x, @y); -o-transform: translate(@x, @y); transform: translate(@x, @y); } .skew(@x, @y) { -webkit-transform: skew(@x, @y); -moz-transform: skew(@x, @y); -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885 -o-transform: skew(@x, @y); transform: skew(@x, @y); -webkit-backface-visibility: hidden; // See https://github.com/twbs/bootstrap/issues/5319 } .translate3d(@x, @y, @z) { -webkit-transform: translate3d(@x, @y, @z); -moz-transform: translate3d(@x, @y, @z); -o-transform: translate3d(@x, @y, @z); transform: translate3d(@x, @y, @z); } // Backface visibility // Prevent browsers from flickering when using CSS 3D transforms. // Default value is `visible`, but can be changed to `hidden // See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples .backface-visibility(@visibility){ -webkit-backface-visibility: @visibility; -moz-backface-visibility: @visibility; backface-visibility: @visibility; } // Background clipping // Heads up: FF 3.6 and under need "padding" instead of "padding-box" .background-clip(@clip) { -webkit-background-clip: @clip; -moz-background-clip: @clip; background-clip: @clip; } // Background sizing .background-size(@size) { -webkit-background-size: @size; -moz-background-size: @size; -o-background-size: @size; background-size: @size; } // Box sizing .box-sizing(@boxmodel) { -webkit-box-sizing: @boxmodel; -moz-box-sizing: @boxmodel; box-sizing: @boxmodel; } // User select // For selecting text on the page .user-select(@select) { -webkit-user-select: @select; -moz-user-select: @select; -ms-user-select: @select; -o-user-select: @select; user-select: @select; } // Resize anything .resizable(@direction) { resize: @direction; // Options: horizontal, vertical, both overflow: auto; // Safari fix } // CSS3 Content Columns .content-columns(@columnCount, @columnGap: @gridGutterWidth) { -webkit-column-count: @columnCount; -moz-column-count: @columnCount; column-count: @columnCount; -webkit-column-gap: @columnGap; -moz-column-gap: @columnGap; column-gap: @columnGap; } // Optional hyphenation .hyphens(@mode: auto) { word-wrap: break-word; -webkit-hyphens: @mode; -moz-hyphens: @mode; -ms-hyphens: @mode; -o-hyphens: @mode; hyphens: @mode; } // Opacity .opacity(@opacity) { opacity: @opacity / 100; filter: ~"alpha(opacity=@{opacity})"; } // BACKGROUNDS // -------------------------------------------------- // Add an alphatransparency value to any background or border color (via Elyse Holladay) #translucent { .background(@color: @white, @alpha: 1) { background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); } .border(@color: @white, @alpha: 1) { border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); .background-clip(padding-box); } } // Gradient Bar Colors for buttons and alerts .gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) { color: @textColor; text-shadow: @textShadow; #gradient > .vertical(@primaryColor, @secondaryColor); border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%); border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%); } // Gradients #gradient { .horizontal(@startColor: #555, @endColor: #333) { background-color: @endColor; background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+ background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10 background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10 background-repeat: repeat-x; filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down } .vertical(@startColor: #555, @endColor: #333) { background-color: mix(@startColor, @endColor, 60%); background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10 background-repeat: repeat-x; filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down } .directional(@startColor: #555, @endColor: #333, @deg: 45deg) { background-color: @endColor; background-repeat: repeat-x; background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+ background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+ background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10 background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10 } .horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) { background-color: mix(@midColor, @endColor, 80%); background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor)); background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor); background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor); background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor); background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor); background-repeat: no-repeat; filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback } .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) { background-color: mix(@midColor, @endColor, 80%); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor)); background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor); background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor); background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor); background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor); background-repeat: no-repeat; filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback } .radial(@innerColor: #555, @outerColor: #333) { background-color: @outerColor; background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor)); background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor); background-image: -moz-radial-gradient(circle, @innerColor, @outerColor); background-image: -o-radial-gradient(circle, @innerColor, @outerColor); background-repeat: no-repeat; } .striped(@color: #555, @angle: 45deg) { background-color: @color; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent)); background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); } } // Reset filters for IE .reset-filter() { filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); } // COMPONENT MIXINS // -------------------------------------------------- // Horizontal dividers // ------------------------- // Dividers (basically an hr) within dropdowns and nav lists .nav-divider(@top: #e5e5e5, @bottom: @white) { // IE7 needs a set width since we gave a height. Restricting just // to IE7 to keep the 1px left/right space in other browsers. // It is unclear where IE is getting the extra space that we need // to negative-margin away, but so it goes. *width: 100%; height: 1px; margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px *margin: -5px 0 5px; overflow: hidden; background-color: @top; border-bottom: 1px solid @bottom; } // Button backgrounds // ------------------ .buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) { // gradientBar will set the background to a pleasing blend of these, to support IE<=9 .gradientBar(@startColor, @endColor, @textColor, @textShadow); *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */ .reset-filter(); // in these cases the gradient won't cover the background, so we override &:hover, &:focus, &:active, &.active, &.disabled, &[disabled] { color: @textColor; background-color: @endColor; *background-color: darken(@endColor, 5%); } // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves &:active, &.active { background-color: darken(@endColor, 10%) e("\9"); } } // Navbar vertical align // ------------------------- // Vertically center elements in the navbar. // Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin. .navbarVerticalAlign(@elementHeight) { margin-top: (@navbarHeight - @elementHeight) / 2; } // Grid System // ----------- // Centered container element .container-fixed() { margin-right: auto; margin-left: auto; .clearfix(); } // Table columns .tableColumns(@columnSpan: 1) { float: none; // undo default grid column styles width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells margin-left: 0; // undo default grid column styles } // Make a Grid // Use .makeRow and .makeColumn to assign semantic layouts grid system behavior .makeRow() { margin-left: @gridGutterWidth * -1; .clearfix(); } .makeColumn(@columns: 1, @offset: 0) { float: left; margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2); width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); } // The Grid #grid { .core (@gridColumnWidth, @gridGutterWidth) { .spanX (@index) when (@index > 0) { .span@{index} { .span(@index); } .spanX(@index - 1); } .spanX (0) {} .offsetX (@index) when (@index > 0) { .offset@{index} { .offset(@index); } .offsetX(@index - 1); } .offsetX (0) {} .offset (@columns) { margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1)); } .span (@columns) { width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); } .row { margin-left: @gridGutterWidth * -1; .clearfix(); } [class*="span"] { float: left; min-height: 1px; // prevent collapsing columns margin-left: @gridGutterWidth; } // Set the container width, and override it for fixed navbars in media queries .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { .span(@gridColumns); } // generate .spanX and .offsetX .spanX (@gridColumns); .offsetX (@gridColumns); } .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) { .spanX (@index) when (@index > 0) { .span@{index} { .span(@index); } .spanX(@index - 1); } .spanX (0) {} .offsetX (@index) when (@index > 0) { .offset@{index} { .offset(@index); } .offset@{index}:first-child { .offsetFirstChild(@index); } .offsetX(@index - 1); } .offsetX (0) {} .offset (@columns) { margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2); *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%); } .offsetFirstChild (@columns) { margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth); *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%); } .span (@columns) { width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)); *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%); } .row-fluid { width: 100%; .clearfix(); [class*="span"] { .input-block-level(); float: left; margin-left: @fluidGridGutterWidth; *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%); } [class*="span"]:first-child { margin-left: 0; } // Space grid-sized controls properly if multiple per line .controls-row [class*="span"] + [class*="span"] { margin-left: @fluidGridGutterWidth; } // generate .spanX and .offsetX .spanX (@gridColumns); .offsetX (@gridColumns); } } .input(@gridColumnWidth, @gridGutterWidth) { .spanX (@index) when (@index > 0) { input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index} { .span(@index); } .spanX(@index - 1); } .spanX (0) {} .span(@columns) { width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14; } input, textarea, .uneditable-input { margin-left: 0; // override margin-left from core grid system } // Space grid-sized controls properly if multiple per line .controls-row [class*="span"] + [class*="span"] { margin-left: @gridGutterWidth; } // generate .spanX .spanX (@gridColumns); } } bootstrap/buttons.less 0000604 00000011236 15245573345 0011163 0 ustar 00 // // Buttons // -------------------------------------------------- // Base styles // -------------------------------------------------- // Core .btn { display: inline-block; .ie7-inline-block(); padding: 4px 12px; margin-bottom: 0; // For input.btn font-size: @baseFontSize; line-height: @baseLineHeight; text-align: center; vertical-align: middle; cursor: pointer; .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75)); border: 1px solid @btnBorder; *border: 0; // Remove the border to prevent IE7's black border on input:focus border-bottom-color: darken(@btnBorder, 10%); .border-radius(@baseBorderRadius); .ie7-restore-left-whitespace(); // Give IE7 some love .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)"); // Hover/focus state &:hover, &:focus { color: @grayDark; text-decoration: none; background-position: 0 -15px; // transition is only when going to hover/focus, otherwise the background // behind the gradient (there for IE<=9 fallback) gets mismatched .transition(background-position .1s linear); } // Focus state for keyboard and accessibility &:focus { .tab-focus(); } // Active state &.active, &:active { background-image: none; outline: 0; .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)"); } // Disabled state &.disabled, &[disabled] { cursor: default; background-image: none; .opacity(65); .box-shadow(none); } } // Button Sizes // -------------------------------------------------- // Large .btn-large { padding: @paddingLarge; font-size: @fontSizeLarge; .border-radius(@borderRadiusLarge); } .btn-large [class^="icon-"], .btn-large [class*=" icon-"] { margin-top: 4px; } // Small .btn-small { padding: @paddingSmall; font-size: @fontSizeSmall; .border-radius(@borderRadiusSmall); } .btn-small [class^="icon-"], .btn-small [class*=" icon-"] { margin-top: 0; } .btn-mini [class^="icon-"], .btn-mini [class*=" icon-"] { margin-top: -1px; } // Mini .btn-mini { padding: @paddingMini; font-size: @fontSizeMini; .border-radius(@borderRadiusSmall); } // Block button // ------------------------- .btn-block { display: block; width: 100%; padding-left: 0; padding-right: 0; .box-sizing(border-box); } // Vertically space out multiple block buttons .btn-block + .btn-block { margin-top: 5px; } // Specificity overrides input[type="submit"], input[type="reset"], input[type="button"] { &.btn-block { width: 100%; } } // Alternate buttons // -------------------------------------------------- // Provide *some* extra contrast for those who can get it .btn-primary.active, .btn-warning.active, .btn-danger.active, .btn-success.active, .btn-info.active, .btn-inverse.active { color: rgba(255,255,255,.75); } // Set the backgrounds // ------------------------- .btn-primary { .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight); } // Warning appears are orange .btn-warning { .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight); } // Danger and error appear as red .btn-danger { .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight); } // Success appears as green .btn-success { .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight); } // Info appears as a neutral blue .btn-info { .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight); } // Inverse appears as dark gray .btn-inverse { .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight); } // Cross-browser Jank // -------------------------------------------------- button.btn, input[type="submit"].btn { // Firefox 3.6 only I believe &::-moz-focus-inner { padding: 0; border: 0; } // IE7 has some default padding on button controls *padding-top: 3px; *padding-bottom: 3px; &.btn-large { *padding-top: 7px; *padding-bottom: 7px; } &.btn-small { *padding-top: 3px; *padding-bottom: 3px; } &.btn-mini { *padding-top: 1px; *padding-bottom: 1px; } } // Link buttons // -------------------------------------------------- // Make a button look and behave like a link .btn-link, .btn-link:active, .btn-link[disabled] { background-color: transparent; background-image: none; .box-shadow(none); } .btn-link { border-color: transparent; cursor: pointer; color: @linkColor; .border-radius(0); } .btn-link:hover, .btn-link:focus { color: @linkColorHover; text-decoration: underline; background-color: transparent; } .btn-link[disabled]:hover, .btn-link[disabled]:focus { color: @grayDark; text-decoration: none; } bootstrap/responsive-1200px-min.less 0000604 00000001065 15245573345 0013372 0 ustar 00 // // Responsive: Large desktop and up // -------------------------------------------------- @media (min-width: 1200px) { // Fixed grid #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); // Fluid grid #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); // Input grid #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); // Thumbnails .thumbnails { margin-left: -@gridGutterWidth1200; } .thumbnails > li { margin-left: @gridGutterWidth1200; } .row-fluid .thumbnails { margin-left: 0; } } bootstrap/wells.less 0000604 00000001050 15245573345 0010604 0 ustar 00 // // Wells // -------------------------------------------------- // Base class .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: @wellBackground; border: 1px solid darken(@wellBackground, 7%); .border-radius(@baseBorderRadius); .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); blockquote { border-color: #ddd; border-color: rgba(0,0,0,.15); } } // Sizes .well-large { padding: 24px; .border-radius(@borderRadiusLarge); } .well-small { padding: 9px; .border-radius(@borderRadiusSmall); } template-rtl.less 0000604 00000017004 15245573345 0010061 0 ustar 00 @import "template.less"; @import "../../../../media/jui/less/bootstrap-rtl.less"; .navbar { .admin-logo { float: right; padding: 7px 15px 0px 12px; } .brand { float: left; padding: 6px 10px; } .nav { margin: 0 0 0 10px; > li > a { padding: 6px 10px; } > li ul { overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; -moz-overflow-scrolling: touch; -ms-overflow-scrolling: touch; -o-overflow-scrolling: touch; overflow-scrolling: touch; height: auto; max-height: 500px; margin: 0; &::-webkit-scrollbar { -webkit-appearance: none; width: 7px; } &::-webkit-scrollbar-thumb { border-radius: 4px; background-color: rgba(0,0,0,.5); -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5); } } } .nav-user .dropdown-menu li span { padding-left: 0; padding-right: 10px; } .nav > .dropdown.open:after { right: 10px; width: 0; } .empty-nav { display: none; } } #toolbar { .btn { padding: 0 10px; } [class^="icon-"], [class*=" icon-"] { border-radius: 0 3px 3px 0; border-right: 0; border-left: 1px solid #b3b3b3; margin: 0 -10px 0 6px; } } .chzn-container-single .chzn-single { padding-left: 8px; div { border-left: 0; border-right: 1px solid #cccccc; } abbr { left: 36px; } } .chzn-container-active.chzn-with-drop .chzn-single div { background-color: #f3f3f3; border-bottom: 1px solid #cccccc; border-bottom-left-radius: 0px; border-bottom-right-radius: 3px; border-left: 1px solid #cccccc; } .chzn-container-multi .chzn-choices .search-choice { padding-left: 7px; .search-choice-close { margin-left: 0; margin-right: 3px; } } .chzn-container .chzn-single.chzn-color[rel="value_0"] div, .chzn-container .chzn-single.chzn-color[rel="value_1"] div { border-right: none; } .chzn-container-single .chzn-search::after { left: 20px; right: auto; } .container-logo { padding-top: 0; float: left; text-align: left; } .page-title { [class^="icon-"], [class*=" icon-"] { margin-right: 0; margin-left: 16px; } } @media (max-width: @md-max) { .navbar { .admin-logo { margin-right: 10px; padding: 9px 9px 0 9px; } .btn-navbar { float: left; margin-right: 5px; margin-left: 3px; } .nav-collapse .nav.pull-left { float: none; margin-left: 0; margin-right: 0; } } .nav-collapse .nav > li { float: none; } .page-title { [class^="icon-"], [class*=" icon-"] { margin-left: 10px; } } } /* Status module */ #status { padding: 4px 10px; .btn-group { margin: 0; } .btn-group.separator:after { content: ' '; display: block; float: left; background: #ADADAD; margin: 0 10px; height: 15px; width: 1px; } .badge { margin-left: .25em; margin-right: 0; } } /* Menus */ .dropdown-menu > li > a { text-align: right; } /* btn-group */ .btn-group.btn-group-yesno > .btn, .btn-group > .btn, .btn-group > .btn + .dropdown-toggle { float: none; } /* For grid.boolean */ a.grid_false { display: inline-block; height: 16px; width: 16px; background-image: url('../images/admin/publish_r.png'); } a.grid_true { display: inline-block; height: 16px; width: 16px; background-image: url('../images/admin/icon-16-allow.png'); } /* Login */ .view-login { .login-joomla { position: absolute; right: 50%; height: 24px; width: 24px; margin-right: -12px; font-size: 22px; } .input-medium { width: 169px; } } .login { .chzn-single { width: 219px !important; } .chzn-container, .chzn-drop { width: 227px !important; max-width: 227px !important; } .input-prepend .chzn-container-single .chzn-single { .border-radius(3px 0 0 3px); border-right:0px; } } /* For collapsible sidebar */ .j-sidebar-container { position: absolute; display: block; left: auto; right: -16.5%; padding-top: 28px; padding-bottom: 40px; clear: both; margin: -10px -1px 0 0; border-right: 0; border-left: 1px solid #d3d3d3; } .j-sidebar-container.j-sidebar-hidden { left: auto; right: -16.5%; } .j-sidebar-container.j-sidebar-visible { left: auto; right: 0; } .j-toggle-sidebar-header { padding: 10px 19px 10px 0; } .sidebar { padding: 3px 4px 3px 3px; } .j-toggle-button-wrapper { &.j-toggle-hidden { right: auto; left: -24px; } &.j-toggle-visible { right: auto; left: 10px; } } .j-sidebar-container .icon-folder-2 { line-height: 15px; padding-left: 0; } #system-message-container, #j-main-container { padding: 0 5px 0 0; } #system-message-container.j-toggle-main, #j-main-container.j-toggle-main, #system-debug.j-toggle-main { float: left; } @media (max-width: @lg-max) { .j-toggle-button-wrapper.j-toggle-hidden { right: auto; left: -20px; } } @media (max-width: @md-max) { .j-sidebar-container { position: relative; padding: 0; border-right: 0; border-left: 0; } .j-sidebar-container.j-sidebar-hidden { margin-left: auto; margin-right: 16.5%; } .j-sidebar-container.j-sidebar-visible { margin-left: auto; margin-right: 0; } /* login */ .view-login { select { width: 229px } } } #j-main-container.expanded { margin-right: 0; } /* Modal batch */ @media (min-width: @md) { .row-fluid [class*="span"] { margin-right: 15px; margin-left: 0; } .row-fluid .modal-batch [class*="span"] { margin-right: 0; } } .row-fluid .modal-batch [class*="span"] { margin-right: 0; } /* Extended Responsive Styles */ @media (max-width: @sm-max) { .btn-toolbar .btn-wrapper .btn { width: 100% !important; margin-right:0px; } .btn-toolbar .btn-wrapper { margin:0 10px 5px 10px; } } @media (max-width: 420px) { .j-sidebar-container { margin: 0; } /* login */ .view-login { .input-medium { width: 173px; } select { width: 229px } } } /* Stats plugin */ .js-pstats-data-details dd { margin-right: 240px; } /* Modal footer */ .modal-footer button { float: left; } /* Modal Header text align right even if parent container centered */ .modal-header { text-align: right; } /* Media Manager */ #mediamanager-form .thumbnails-media .thumbnail { margin-left: 18px !important; margin-right: 0; direction: ltr; text-align: center; } .thumbnails-media .imgThumb label::before, .thumbnails-media .imgThumb .imgThumbInside::before { left: 0; right: auto; border-radius: 3px 0; } .thumbnails-media .thumbnail input[type="radio"], .thumbnails-media .thumbnail input[type="checkbox"] { left: auto; right: 5px; } .thumbnails-media .imgDelete a.close { border-radius: 0 3px; } .thumbnails-media .imgPreview a, .thumbnails-media .imgDetails { border-radius: 3px 0; border-width: 1px; left: 0; right: 0; text-align: left; direction: ltr; } .thumbnails-media .imgPreview a { width: 100%; } /* SubForms (Table) */ .subform-table-layout { td { padding-left: 10px; &::before { content: attr(data-column); left: auto; right: 10px; padding-left: 10px; padding-right: 0; } } .subform-repeatable tbody td:last-of-type { text-align: left; } .form-horizontal .controls { margin-top: 0; } } /* com_templates */ .tree-holder { ul { ul { padding-right: 15px; box-shadow: 3px 0 0 rgba(0, 0, 0, 0.08); padding-left: 0; .folder-url, .file { box-shadow: 3px 0 0 @linkColor; border-right: 0; border-left: 1px solid rgba(0, 0, 0, 0.08); } } } } /* Dropdown */ .dropdown-reverse { left: 0; right: auto; } /* CPanel Site Information mod_stats_admin */ .com_cpanel .well > .row-striped > .row-fluid [class*="span"], .com_cpanel .well > .list-striped > .row-fluid [class*="span"] { margin-right: 0; } cache.php 0000604 00000011113 15245575571 0006331 0 ustar 00 <?php require_once( dirname(__FILE__).'/version.php'); /** * Utility for handling the generation and caching of css files * * @package Less * @subpackage cache * */ class Less_Cache{ public static $cache_dir = false; // directory less.php can use for storing data /** * Save and reuse the results of compiled less files. * The first call to Get() will generate css and save it. * Subsequent calls to Get() with the same arguments will return the same css filename * * @param array $less_files Array of .less files to compile * @param array $parser_options Array of compiler options * @param boolean $use_cache Set to false to regenerate the css file * @return string Name of the css file */ public static function Get( $less_files, $parser_options = array(), $use_cache = true ){ //check $cache_dir if( isset($parser_options['cache_dir']) ){ Less_Cache::$cache_dir = $parser_options['cache_dir']; } if( empty(Less_Cache::$cache_dir) ){ throw new Exception('cache_dir not set'); } self::CheckCacheDir(); // generate name for compiled css file $less_files = (array)$less_files; $hash = md5(json_encode($less_files)); $list_file = Less_Cache::$cache_dir.'lessphp_'.$hash.'.list'; if( $use_cache === true ){ // check cached content if( file_exists($list_file) ){ $list = explode("\n",file_get_contents($list_file)); $compiled_name = self::CompiledName($list); $compiled_file = Less_Cache::$cache_dir.$compiled_name; if( file_exists($compiled_file) ){ @touch($list_file); @touch($compiled_file); return $compiled_name; } } } $compiled = self::Cache( $less_files, $parser_options ); if( !$compiled ){ return false; } //save the file list $cache = implode("\n",$less_files); file_put_contents( $list_file, $cache ); //save the css $compiled_name = self::CompiledName( $less_files ); file_put_contents( Less_Cache::$cache_dir.$compiled_name, $compiled ); //clean up self::CleanCache(); return $compiled_name; } /** * Force the compiler to regenerate the cached css file * * @param array $less_files Array of .less files to compile * @param array $parser_options Array of compiler options * @return string Name of the css file */ public static function Regen( $less_files, $parser_options = array() ){ return self::Get( $less_files, $parser_options, false ); } public static function Cache( &$less_files, $parser_options = array() ){ // get less.php if it exists $file = dirname(__FILE__) . '/Less.php'; if( file_exists($file) && !class_exists('Less_Parser') ){ require_once($file); } $parser_options['cache_dir'] = Less_Cache::$cache_dir; $parser = new Less_Parser($parser_options); // combine files foreach($less_files as $file_path => $uri_or_less ){ //treat as less markup if there are newline characters if( strpos($uri_or_less,"\n") !== false ){ $parser->Parse( $uri_or_less ); continue; } $parser->ParseFile( $file_path, $uri_or_less ); } $compiled = $parser->getCss(); $less_files = $parser->allParsedFiles(); return $compiled; } private static function CompiledName( $files ){ //save the file list $temp = array(Less_Version::cache_version); foreach($files as $file){ $temp[] = filemtime($file)."\t".filesize($file)."\t".$file; } return 'lessphp_'.sha1(json_encode($temp)).'.css'; } public static function SetCacheDir( $dir ){ Less_Cache::$cache_dir = $dir; } public static function CheckCacheDir(){ Less_Cache::$cache_dir = str_replace('\\','/',Less_Cache::$cache_dir); Less_Cache::$cache_dir = rtrim(Less_Cache::$cache_dir,'/').'/'; if( !file_exists(Less_Cache::$cache_dir) ){ if( !mkdir(Less_Cache::$cache_dir) ){ throw new Less_Exception_Parser('Less.php cache directory couldn\'t be created: '.Less_Cache::$cache_dir); } }elseif( !is_dir(Less_Cache::$cache_dir) ){ throw new Less_Exception_Parser('Less.php cache directory doesn\'t exist: '.Less_Cache::$cache_dir); }elseif( !is_writable(Less_Cache::$cache_dir) ){ throw new Less_Exception_Parser('Less.php cache directory isn\'t writable: '.Less_Cache::$cache_dir); } } public static function CleanCache(){ static $clean = false; if( $clean ){ return; } $files = scandir(Less_Cache::$cache_dir); if( $files ){ $check_time = time() - 604800; foreach($files as $file){ if( strpos($file,'lessphp_') !== 0 ){ continue; } $full_path = Less_Cache::$cache_dir.'/'.$file; if( filemtime($full_path) > $check_time ){ continue; } unlink($full_path); } } $clean = true; } } version.php 0000604 00000000510 15245575571 0006752 0 ustar 00 <?php /** * Release numbers * * @package Less * @subpackage version */ class Less_Version{ const version = '1.7.0.1'; // The current build number of less.php const less_version = '1.7'; // The less.js version that this build should be compatible with const cache_version = '170'; // The parser cache version } strapper.less 0000604 00000004167 15245611445 0007307 0 ustar 00 /*! * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file defines Akeeba Strapper specific styling overrides */ @import 'bootstrap/variables.less'; div.akeeba-bootstrap { font-size: 10pt; background: transparent; // RocketTheme templates force a background image in alerts .alert { background-image: none; } // Wide form layout form.form-horizontal-wide { label.control-label { width: 300px; } div.controls { margin-left: 320px; } textarea { width: 450px; } } // Table layout fixes td.order { & { width: 12px; } span { line-height: 16px; height: 16px; margin: 0; padding: 0; } a.jgrid span.state { background-repeat: no-repeat; height: 12px; margin-bottom: 2px; span.text { line-height: 16px; } } input.text-area-order { margin-bottom: 0; width: 20px; } .sortable-handler { display: block; float: left; margin: 1px 0 0 0; padding: 5px 5px; } .order-enabled { width: 60px; } .order-disabled { .sortable-handler { margin: 0; padding: 0; } } } th a.save-order { height: 19px; } div { // Clear fixes &.ak_clr_left { clear: left; } &.ak_clr { clear: both; } // Modal toolbar button fix &.icon a.modal { position: relative; top: inherit; left: inherit; z-index: inherit; margin: 0 !important; box-shadow: none; } // Icon wrapper fix [class^="icon-wrapper"] { display: inline; } } } #akeeba-bootstrap { &:not(.joomla-version-25) { input[name="cid[]"] { margin: -3px 0 0 0; } } } // Icon wrapper fix div.icon-wrapper { display: inline; } /** * Akeeba Live Update button styling */ span.liveupdate-icon- { ¬supported { color: @gray; } &crashed { color: @gray; } &updates { font-weight: bold; color: @red; font-size: 0.87em; } &noupdates { color: @green; } } strapper.j25.less 0000604 00000001464 15245611445 0007703 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file defines Akeeba Strapper specific styling overrides */ .akeeba-bootstrap { // Joomla! 2.5+ workaround for booleanlist controls label.radiobtn { display: inline-block; float: none; margin: 0.6em 0.5em 0 0; } div.controls { input[type="radio"] { display: inline-block; float: none; margin: -0.3em 0 0 0; } } // Beez2 overrides for front-end link bars ul.nav-tabs li { list-style: none; } // Fixed margin for span* elements .row-fluid [class*="span"]{ margin-left: 15px; } .row-fluid form [class*="span"]:first-of-type{ margin-left: 0; } } strapper.j3.less 0000604 00000003330 15245611445 0007611 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file defines Akeeba Strapper specific styling overrides */ .akeeba-bootstrap { // Backport of Joomla! 1.x/2.x cpanel icons to Joomla! 3.x .cpanel div.icon, #cpanel div.icon { text-align: center; margin-right: 15px; float: left; margin-bottom: 15px; font-size: 0.9em; a { padding: 7px 5px 5px; background-color: white; background-position: -30px; display: block; float: left; height: 97px; width: 108px; color: #565656; vertical-align: middle; text-decoration: none; border: 1px solid #CCC; border-radius: 5px; transition-property: none; box-shadow: inset -5px -5px 10px rgba(0, 0, 0, 0.1), inset 5px 5px 10px rgba(0, 0, 0, 0.05); &:hover, &:focus, &:active { background-position: 0; -webkit-border-bottom-left-radius: inherit; -moz-border-radius-bottomleft: inherit; border-bottom-left-radius: inherit; box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.1), inset -5px -5px 10px rgba(0, 0, 0, 0.05); position: relative; z-index: 10; } } span { display: block; text-align: center; } } // Joomla! 3.x workarounds for missing icon classes div#toolbar div#toolbar-back button.btn span.icon-back::before { content: ""; } // Joomla! 3.x workarounds for sort icons .icon-downarrow::before, .akeeba-bootstrap .icon-arrow-down::before { content:"" } .icon-uparrow::before, .akeeba-bootstrap .icon-arrow-up::before { content:"" } // Joomla! 3.0+ workaround for booleanlist controls label.radio { display: inline-block; } div.controls>div.controls { margin: 0; } } bootstrap.j32.less 0000604 00000001514 15245611445 0010052 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes only Joomla! 3.2-specific style overrides */ /* * Bootstrap (namespaced) */ div.akeeba-bootstrap { /** * If your template already includes Bootstrap CSS styling please comment * out this line and uncomment the include below. */ // @import "bootstrap.full.j32.less"; /** * If your template already includes Bootstrap CSS styling please uncomment * out this line and comment out the include above. */ @import "bootstrap.minimal.j32.less"; } // Popovers must not be namespaced @import "bootstrap/variables"; @import "bootstrap/mixins"; @import "bootstrap/popovers"; /* * Akeeba Strapper overrides */ @import "strapper.less"; @import "strapper.j3.less"; bootstrap/hero-unit.less 0000604 00000001011 15245611445 0011357 0 ustar 00 // // Hero unit // -------------------------------------------------- .hero-unit { padding: 60px; margin-bottom: 30px; font-size: 18px; font-weight: 200; line-height: @baseLineHeight * 1.5; color: @heroUnitLeadColor; background-color: @heroUnitBackground; .border-radius(6px); h1 { margin-bottom: 0; font-size: 60px; line-height: 1; color: @heroUnitHeadingColor; letter-spacing: -1px; } li { line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less } } bootstrap/utilities.less 0000604 00000000517 15245611445 0011472 0 ustar 00 // // Utility classes // -------------------------------------------------- // Quick floats .pull-right { float: right; } .pull-left { float: left; } // Toggling content .hide { display: none; } .show { display: block; } // Visibility .invisible { visibility: hidden; } // For Affix plugin .affix { position: fixed; } bootstrap/labels-badges.less 0000604 00000003534 15245611445 0012146 0 ustar 00 // // Labels and badges // -------------------------------------------------- // Base classes .label, .badge { display: inline-block; padding: 2px 4px; font-size: @baseFontSize * .846; font-weight: bold; line-height: 14px; // ensure proper line-height if floated color: @white; vertical-align: baseline; white-space: nowrap; text-shadow: 0 -1px 0 rgba(0,0,0,.25); background-color: @grayLight; } // Set unique padding and border-radii .label { .border-radius(3px); } .badge { padding-left: 9px; padding-right: 9px; .border-radius(9px); } // Empty labels/badges collapse .label, .badge { &:empty { display: none; } } // Hover/focus state, but only for links a { &.label:hover, &.label:focus, &.badge:hover, &.badge:focus { color: @white; text-decoration: none; cursor: pointer; } } // Colors // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) .label, .badge { // Important (red) &-important { background-color: @errorText; } &-important[href] { background-color: darken(@errorText, 10%); } // Warnings (orange) &-warning { background-color: @orange; } &-warning[href] { background-color: darken(@orange, 10%); } // Success (green) &-success { background-color: @successText; } &-success[href] { background-color: darken(@successText, 10%); } // Info (turquoise) &-info { background-color: @infoText; } &-info[href] { background-color: darken(@infoText, 10%); } // Inverse (black) &-inverse { background-color: @grayDark; } &-inverse[href] { background-color: darken(@grayDark, 10%); } } // Quick fix for labels/badges in buttons .btn { .label, .badge { position: relative; top: -1px; } } .btn-mini { .label, .badge { top: 0; } } bootstrap/alerts.less 0000604 00000002531 15245611445 0010747 0 ustar 00 // // Alerts // -------------------------------------------------- // Base styles // ------------------------- .alert { padding: 8px 35px 8px 14px; margin-bottom: @baseLineHeight; text-shadow: 0 1px 0 rgba(255,255,255,.5); background-color: @warningBackground; border: 1px solid @warningBorder; .border-radius(@baseBorderRadius); } .alert, .alert h4 { // Specified for the h4 to prevent conflicts of changing @headingsColor color: @warningText; } .alert h4 { margin: 0; } // Adjust close link position .alert .close { position: relative; top: -2px; right: -21px; line-height: @baseLineHeight; } // Alternate styles // ------------------------- .alert-success { background-color: @successBackground; border-color: @successBorder; color: @successText; } .alert-success h4 { color: @successText; } .alert-danger, .alert-error { background-color: @errorBackground; border-color: @errorBorder; color: @errorText; } .alert-danger h4, .alert-error h4 { color: @errorText; } .alert-info { background-color: @infoBackground; border-color: @infoBorder; color: @infoText; } .alert-info h4 { color: @infoText; } // Block alerts // ------------------------- .alert-block { padding-top: 14px; padding-bottom: 14px; } .alert-block > p, .alert-block > ul { margin-bottom: 0; } .alert-block p + p { margin-top: 5px; } bootstrap/component-animations.less 0000604 00000000462 15245611445 0013620 0 ustar 00 // // Component animations // -------------------------------------------------- .fade { opacity: 0; .transition(opacity .15s linear); &.in { opacity: 1; } } .collapse { position: relative; height: 0; overflow: hidden; .transition(height .35s ease); &.in { height: auto; } } bootstrap/scaffolding.less 0000604 00000001565 15245611445 0011742 0 ustar 00 // // Scaffolding // -------------------------------------------------- // Body reset // ------------------------- body { margin: 0; font-family: @baseFontFamily; font-size: @baseFontSize; line-height: @baseLineHeight; color: @textColor; background-color: @bodyBackground; } // Links // ------------------------- a { color: @linkColor; text-decoration: none; } a:hover, a:focus { color: @linkColorHover; text-decoration: underline; } // Images // ------------------------- // Rounded corners .img-rounded { .border-radius(6px); } // Add polaroid-esque trim .img-polaroid { padding: 4px; background-color: #fff; border: 1px solid #ccc; border: 1px solid rgba(0,0,0,.2); .box-shadow(0 1px 3px rgba(0,0,0,.1)); } // Perfect circle .img-circle { .border-radius(500px); // crank the border-radius so it works with most reasonably sized images } bootstrap/reset.less 0000604 00000010151 15245611445 0010574 0 ustar 00 // // Reset CSS // Adapted from http://github.com/necolas/normalize.css // -------------------------------------------------- // Display in IE6-9 and FF3 // ------------------------- article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } // Display block in IE6-9 and FF3 // ------------------------- audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } // Prevents modern browsers from displaying 'audio' without controls // ------------------------- audio:not([controls]) { display: none; } // Base settings // ------------------------- html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } // Focus states a:focus { .tab-focus(); } // Hover & Active a:hover, a:active { outline: 0; } // Prevents sub and sup affecting line-height in all browsers // ------------------------- sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } // Img border in a's and image quality // ------------------------- img { /* Responsive images (ensure images don't scale beyond their parents) */ max-width: 100%; /* Part 1: Set a maxium relative to the parent */ width: auto\9; /* IE7-8 need help adjusting responsive images */ height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */ vertical-align: middle; border: 0; -ms-interpolation-mode: bicubic; } // Prevent max-width from affecting Google Maps #map_canvas img, .google-maps img { max-width: none; } // Forms // ------------------------- // Font size in all browsers, margin changes, misc consistency button, input, select, textarea { margin: 0; font-size: 100%; vertical-align: middle; } button, input { *overflow: visible; // Inner spacing ie IE6/7 line-height: normal; // FF3/4 have !important on line-height in UA stylesheet } button::-moz-focus-inner, input::-moz-focus-inner { // Inner padding and border oddities in FF3/4 padding: 0; border: 0; } button, html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. input[type="reset"], input[type="submit"] { -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS. cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. } label, select, button, input[type="button"], input[type="reset"], input[type="submit"], input[type="radio"], input[type="checkbox"] { cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. } input[type="search"] { // Appearance in Safari/Chrome .box-sizing(content-box); -webkit-appearance: textfield; } input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5 } textarea { overflow: auto; // Remove vertical scrollbar in IE6-9 vertical-align: top; // Readability and alignment cross-browser } // Printing // ------------------------- // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css @media print { * { text-shadow: none !important; color: #000 !important; // Black prints faster: h5bp.com/s background: transparent !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } // Don't show links for images, or javascript/internal links .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; // h5bp.com/t } 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; } } bootstrap/type.less 0000604 00000011366 15245611445 0010444 0 ustar 00 // // Typography // -------------------------------------------------- // Body text // ------------------------- p { margin: 0 0 @baseLineHeight / 2; } .lead { margin-bottom: @baseLineHeight; font-size: @baseFontSize * 1.5; font-weight: 200; line-height: @baseLineHeight * 1.5; } // Emphasis & misc // ------------------------- // Ex: 14px base font * 85% = about 12px small { font-size: 85%; } strong { font-weight: bold; } em { font-style: italic; } cite { font-style: normal; } // Utility classes .muted { color: @grayLight; } a.muted:hover, a.muted:focus { color: darken(@grayLight, 10%); } .text-warning { color: @warningText; } a.text-warning:hover, a.text-warning:focus { color: darken(@warningText, 10%); } .text-error { color: @errorText; } a.text-error:hover, a.text-error:focus { color: darken(@errorText, 10%); } .text-info { color: @infoText; } a.text-info:hover, a.text-info:focus { color: darken(@infoText, 10%); } .text-success { color: @successText; } a.text-success:hover, a.text-success:focus { color: darken(@successText, 10%); } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } // Headings // ------------------------- h1, h2, h3, h4, h5, h6 { margin: (@baseLineHeight / 2) 0; font-family: @headingsFontFamily; font-weight: @headingsFontWeight; line-height: @baseLineHeight; color: @headingsColor; text-rendering: optimizelegibility; // Fix the character spacing for headings small { font-weight: normal; line-height: 1; color: @grayLight; } } h1, h2, h3 { line-height: @baseLineHeight * 2; } h1 { font-size: @baseFontSize * 2.75; } // ~38px h2 { font-size: @baseFontSize * 2.25; } // ~32px h3 { font-size: @baseFontSize * 1.75; } // ~24px h4 { font-size: @baseFontSize * 1.25; } // ~18px h5 { font-size: @baseFontSize; } h6 { font-size: @baseFontSize * 0.85; } // ~12px h1 small { font-size: @baseFontSize * 1.75; } // ~24px h2 small { font-size: @baseFontSize * 1.25; } // ~18px h3 small { font-size: @baseFontSize; } h4 small { font-size: @baseFontSize; } // Page header // ------------------------- .page-header { padding-bottom: (@baseLineHeight / 2) - 1; margin: @baseLineHeight 0 (@baseLineHeight * 1.5); border-bottom: 1px solid @grayLighter; } // Lists // -------------------------------------------------- // Unordered and Ordered lists ul, ol { padding: 0; margin: 0 0 @baseLineHeight / 2 25px; } ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; } li { line-height: @baseLineHeight; } // Remove default list styles ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } // Single-line list items ul.inline, ol.inline { margin-left: 0; list-style: none; > li { display: inline-block; .ie7-inline-block(); padding-left: 5px; padding-right: 5px; } } // Description Lists dl { margin-bottom: @baseLineHeight; } dt, dd { line-height: @baseLineHeight; } dt { font-weight: bold; } dd { margin-left: @baseLineHeight / 2; } // Horizontal layout (like forms) .dl-horizontal { .clearfix(); // Ensure dl clears floats if empty dd elements present dt { float: left; width: @horizontalComponentOffset - 20; clear: left; text-align: right; .text-overflow(); } dd { margin-left: @horizontalComponentOffset; } } // MISC // ---- // Horizontal rules hr { margin: @baseLineHeight 0; border: 0; border-top: 1px solid @hrBorder; border-bottom: 1px solid @white; } // Abbreviations and acronyms abbr[title], // Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 abbr[data-original-title] { cursor: help; border-bottom: 1px dotted @grayLight; } abbr.initialism { font-size: 90%; text-transform: uppercase; } // Blockquotes blockquote { padding: 0 0 0 15px; margin: 0 0 @baseLineHeight; border-left: 5px solid @grayLighter; p { margin-bottom: 0; font-size: @baseFontSize * 1.25; font-weight: 300; line-height: 1.25; } small { display: block; line-height: @baseLineHeight; color: @grayLight; &:before { content: '\2014 \00A0'; } } // Float right with text-align: right &.pull-right { float: right; padding-right: 15px; padding-left: 0; border-right: 5px solid @grayLighter; border-left: 0; p, small { text-align: right; } small { &:before { content: ''; } &:after { content: '\00A0 \2014'; } } } } // Quotes q:before, q:after, blockquote:before, blockquote:after { content: ""; } // Addresses address { display: block; margin-bottom: @baseLineHeight; font-style: normal; line-height: @baseLineHeight; } bootstrap/sprites.j3.less 0000604 00000025266 15245611445 0011473 0 ustar 00 // // Sprites // -------------------------------------------------- // ICONS // ----- // All icons receive the styles of the <i> tag with a base class // of .i and are then given a unique class to add width, height, // and background-position. Your resulting HTML will look like // <i class="icon-inbox"></i>. // For the white version of the icons, just add the .icon-white class: // <i class="icon-inbox icon-white"></i> [class^="icon-"], [class*=" icon-"] { display: inline-block; width: 14px; height: 14px; .ie7-restore-right-whitespace(); line-height: 14px; vertical-align: text-top; background-image: url("@{iconSpritePath}"); background-position: 14px 14px; background-repeat: no-repeat; margin-top: 1px; } /* White icons with optional class, or on hover/focus/active states of certain elements */ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], .nav-list > .active > a > [class^="icon-"], .nav-list > .active > a > [class*=" icon-"], .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], .dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], .dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], .dropdown-submenu:focus > a > [class^="icon-"], .dropdown-submenu:hover > a > [class*=" icon-"], .dropdown-submenu:focus > a > [class*=" icon-"] { background-image: url("@{iconWhiteSpritePath}"); } .icon-glass { background-position: 0 0; } //.icon-music { background-position: -24px 0; } //.icon-search { background-position: -48px 0; } //.icon-envelope { background-position: -72px 0; } .icon-heart { background-position: -96px 0; } //.icon-star { background-position: -120px 0; } //.icon-star-empty { background-position: -144px 0; } //.icon-user { background-position: -168px 0; } .icon-film { background-position: -192px 0; } .icon-th-large { background-position: -216px 0; } .icon-th { background-position: -240px 0; } .icon-th-list { background-position: -264px 0; } //.icon-ok { background-position: -288px 0; } //.icon-remove { background-position: -312px 0; } //.icon-zoom-in { background-position: -336px 0; } //.icon-zoom-out { background-position: -360px 0; } .icon-off { background-position: -384px 0; } .icon-signal { background-position: -408px 0; } //.icon-cog { background-position: -432px 0; } //.icon-trash { background-position: -456px 0; } //.icon-home { background-position: 0 -24px; } //.icon-file { background-position: -24px -24px; } .icon-time { background-position: -48px -24px; } .icon-road { background-position: -72px -24px; } .icon-download-alt { background-position: -96px -24px; } //.icon-download { background-position: -120px -24px; } //.icon-upload { background-position: -144px -24px; } .icon-inbox { background-position: -168px -24px; } .icon-play-circle { background-position: -192px -24px; } .icon-repeat { background-position: -216px -24px; } //.icon-refresh { background-position: -240px -24px; } .icon-list-alt { background-position: -264px -24px; } //.icon-lock { background-position: -287px -24px; } // 1px off //.icon-flag { background-position: -312px -24px; } .icon-headphones { background-position: -336px -24px; } .icon-volume-off { background-position: -360px -24px; } .icon-volume-down { background-position: -384px -24px; } .icon-volume-up { background-position: -408px -24px; } .icon-qrcode { background-position: -432px -24px; } .icon-barcode { background-position: -456px -24px; } .icon-tag { background-position: 0 -48px; } .icon-tags { background-position: -25px -48px; } // 1px off .icon-book { background-position: -48px -48px; } //.icon-bookmark { background-position: -72px -48px; } //.icon-print { background-position: -96px -48px; } //.icon-camera { background-position: -120px -48px; } .icon-font { background-position: -144px -48px; } .icon-bold { background-position: -167px -48px; } // 1px off .icon-italic { background-position: -192px -48px; } .icon-text-height { background-position: -216px -48px; } .icon-text-width { background-position: -240px -48px; } .icon-align-left { background-position: -264px -48px; } .icon-align-center { background-position: -288px -48px; } .icon-align-right { background-position: -312px -48px; } .icon-align-justify { background-position: -336px -48px; } //.icon-list { background-position: -360px -48px; } .icon-indent-left { background-position: -384px -48px; } .icon-indent-right { background-position: -408px -48px; } .icon-facetime-video { background-position: -432px -48px; } //.icon-picture { background-position: -456px -48px; } //.icon-pencil { background-position: 0 -72px; } .icon-map-marker { background-position: -24px -72px; } .icon-adjust { background-position: -48px -72px; } .icon-tint { background-position: -72px -72px; } //.icon-edit { background-position: -96px -72px; } //.icon-share { background-position: -120px -72px; } .icon-check { background-position: -144px -72px; } //.icon-move { background-position: -168px -72px; } .icon-step-backward { background-position: -192px -72px; } .icon-fast-backward { background-position: -216px -72px; } .icon-backward { background-position: -240px -72px; } //.icon-play { background-position: -264px -72px; } .icon-pause { background-position: -288px -72px; } .icon-stop { background-position: -312px -72px; } .icon-forward { background-position: -336px -72px; } .icon-fast-forward { background-position: -360px -72px; } .icon-step-forward { background-position: -384px -72px; } .icon-eject { background-position: -408px -72px; } //.icon-chevron-left { background-position: -432px -72px; } //.icon-chevron-right { background-position: -456px -72px; } .icon-plus-sign { background-position: 0 -96px; } //.icon-minus-sign { background-position: -24px -96px; } .icon-remove-sign { background-position: -48px -96px; } .icon-ok-sign { background-position: -72px -96px; } //.icon-question-sign { background-position: -96px -96px; } .icon-info-sign { background-position: -120px -96px; } .icon-screenshot { background-position: -144px -96px; } .icon-remove-circle { background-position: -168px -96px; } .icon-ok-circle { background-position: -192px -96px; } //.icon-ban-circle { background-position: -216px -96px; } //.icon-arrow-left { background-position: -240px -96px; } //.icon-arrow-right { background-position: -264px -96px; } .icon-arrow-up { background-position: -289px -96px; } // 1px off .icon-arrow-down { background-position: -312px -96px; } //.icon-share-alt { background-position: -336px -96px; } .icon-resize-full { background-position: -360px -96px; } .icon-resize-small { background-position: -384px -96px; } //.icon-plus { background-position: -408px -96px; } //.icon-minus { background-position: -433px -96px; } //.icon-asterisk { background-position: -456px -96px; } .icon-exclamation-sign { background-position: 0 -120px; } .icon-gift { background-position: -24px -120px; } .icon-leaf { background-position: -48px -120px; } .icon-fire { background-position: -72px -120px; } //.icon-eye-open { background-position: -96px -120px; } //.icon-eye-close { background-position: -120px -120px; } .icon-warning-sign { background-position: -144px -120px; } .icon-plane { background-position: -168px -120px; } //.icon-calendar { background-position: -192px -120px; } .icon-random { background-position: -216px -120px; width: 16px; } //.icon-comment { background-position: -240px -120px; } .icon-magnet { background-position: -264px -120px; } //.icon-chevron-up { background-position: -288px -120px; } //.icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off .icon-retweet { background-position: -336px -120px; } .icon-shopping-cart { background-position: -360px -120px; } //.icon-folder-close { background-position: -384px -120px; } //.icon-folder-open { background-position: -408px -120px; width: 16px; } .icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off .icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off .icon-hdd { background-position: 0 -144px; } .icon-bullhorn { background-position: -24px -144px; } .icon-bell { background-position: -48px -144px; } .icon-certificate { background-position: -72px -144px; } //.icon-thumbs-up { background-position: -96px -144px; } //.icon-thumbs-down { background-position: -120px -144px; } .icon-hand-right { background-position: -144px -144px; } .icon-hand-left { background-position: -168px -144px; } .icon-hand-up { background-position: -192px -144px; } .icon-hand-down { background-position: -216px -144px; } .icon-circle-arrow-right { background-position: -240px -144px; } .icon-circle-arrow-left { background-position: -264px -144px; } .icon-circle-arrow-up { background-position: -288px -144px; } .icon-circle-arrow-down { background-position: -312px -144px; } .icon-globe { background-position: -336px -144px; } //.icon-wrench { background-position: -360px -144px; } .icon-tasks { background-position: -384px -144px; } //.icon-filter { background-position: -408px -144px; } //.icon-briefcase { background-position: -432px -144px; } .icon-fullscreen { background-position: -456px -144px; } bootstrap/responsive-767px-max.less 0000604 00000007520 15245611445 0013331 0 ustar 00 // // Responsive: Landscape phone to desktop/tablet // -------------------------------------------------- @media (max-width: 767px) { // Padding to set content in a bit body { padding-left: 20px; padding-right: 20px; } // Negative indent the now static "fixed" navbar .navbar-fixed-top, .navbar-fixed-bottom, .navbar-static-top { margin-left: -20px; margin-right: -20px; } // Remove padding on container given explicit padding set on body .container-fluid { padding: 0; } // TYPOGRAPHY // ---------- // Reset horizontal dl .dl-horizontal { dt { float: none; clear: none; width: auto; text-align: left; } dd { margin-left: 0; } } // GRID & CONTAINERS // ----------------- // Remove width from containers .container { width: auto; } // Fluid rows .row-fluid { width: 100%; } // Undo negative margin on rows and thumbnails .row, .thumbnails { margin-left: 0; } .thumbnails > li { float: none; margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present } // Make all grid-sized elements block level again [class*="span"], .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing .row-fluid [class*="span"] { float: none; display: block; width: 100%; margin-left: 0; .box-sizing(border-box); } .span12, .row-fluid .span12 { width: 100%; .box-sizing(border-box); } .row-fluid [class*="offset"]:first-child { margin-left: 0; } // FORM FIELDS // ----------- // Make span* classes full width .input-large, .input-xlarge, .input-xxlarge, input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input { .input-block-level(); } // But don't let it screw up prepend/append inputs .input-prepend input, .input-append input, .input-prepend input[class*="span"], .input-append input[class*="span"] { display: inline-block; // redeclare so they don't wrap to new lines width: auto; } .controls-row [class*="span"] + [class*="span"] { margin-left: 0; } // Modals .modal { position: fixed; top: 20px; left: 20px; right: 20px; width: auto; margin: 0; &.fade { top: -100px; } &.fade.in { top: 20px; } } } // UP TO LANDSCAPE PHONE // --------------------- @media (max-width: 480px) { // Smooth out the collapsing/expanding nav .nav-collapse { -webkit-transform: translate3d(0, 0, 0); // activate the GPU } // Block level the page header small tag for readability .page-header h1 small { display: block; line-height: @baseLineHeight; } // Update checkboxes for iOS input[type="checkbox"], input[type="radio"] { border: 1px solid #ccc; } // Remove the horizontal form styles .form-horizontal { .control-label { float: none; width: auto; padding-top: 0; text-align: left; } // Move over all input controls and content .controls { margin-left: 0; } // Move the options list down to align with labels .control-list { padding-top: 0; // has to be padding because margin collaspes } // Move over buttons in .form-actions to align with .controls .form-actions { padding-left: 10px; padding-right: 10px; } } // Medias // Reset float and spacing to stack .media .pull-left, .media .pull-right { float: none; display: block; margin-bottom: 10px; } // Remove side margins since we stack instead of indent .media-object { margin-right: 0; margin-left: 0; } // Modals .modal { top: 10px; left: 10px; right: 10px; } .modal-header .close { padding: 10px; margin: -10px; } // Carousel .carousel-caption { position: static; } } bootstrap/dropdowns.less 0000604 00000013077 15245611445 0011503 0 ustar 00 // // Dropdown menus // -------------------------------------------------- // Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns .dropup, .dropdown { position: relative; } .dropdown-toggle { // The caret makes the toggle a bit too tall in IE7 *margin-bottom: -3px; } .dropdown-toggle:active, .open .dropdown-toggle { outline: 0; } // Dropdown arrow/caret // -------------------- .caret { display: inline-block; width: 0; height: 0; vertical-align: top; border-top: 4px solid @black; border-right: 4px solid transparent; border-left: 4px solid transparent; content: ""; } // Place the caret .dropdown .caret { margin-top: 8px; margin-left: 2px; } // The dropdown menu (ul) // ---------------------- .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: @zindexDropdown; display: none; // none by default, but block on "open" of the menu float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; // override default ul list-style: none; background-color: @dropdownBackground; border: 1px solid #ccc; // Fallback for IE7-8 border: 1px solid @dropdownBorder; *border-right-width: 2px; *border-bottom-width: 2px; .border-radius(6px); .box-shadow(0 5px 10px rgba(0,0,0,.2)); -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; // Aligns the dropdown menu to right &.pull-right { right: 0; left: auto; } // Dividers (basically an hr) within the dropdown .divider { .nav-divider(@dropdownDividerTop, @dropdownDividerBottom); } // Links within the dropdown menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: @baseLineHeight; color: @dropdownLinkColor; white-space: nowrap; } } // Hover/Focus state // ----------- .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus, .dropdown-submenu:hover > a, .dropdown-submenu:focus > a { text-decoration: none; color: @dropdownLinkColorHover; #gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%)); } // Active state // ------------ .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: @dropdownLinkColorActive; text-decoration: none; outline: 0; #gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%)); } // Disabled state // -------------- // Gray out text and ensure the hover/focus state remains gray .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: @grayLight; } // Nuke hover/focus effects .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; background-color: transparent; background-image: none; // Remove CSS gradient .reset-filter(); cursor: default; } // Open state for the dropdown // --------------------------- .open { // IE7's z-index only goes to the nearest positioned ancestor, which would // make the menu appear below buttons that appeared later on the page *z-index: @zindexDropdown; & > .dropdown-menu { display: block; } } // Backdrop to catch body clicks on mobile, etc. // --------------------------- .dropdown-backdrop { position: fixed; left: 0; right: 0; bottom: 0; top: 0; z-index: @zindexDropdown - 10; } // Right aligned dropdowns // --------------------------- .pull-right > .dropdown-menu { right: 0; left: auto; } // Allow for dropdowns to go bottom up (aka, dropup-menu) // ------------------------------------------------------ // Just add .dropup after the standard .dropdown class and you're set, bro. // TODO: abstract this so that the navbar fixed styles are not placed here? .dropup, .navbar-fixed-bottom .dropdown { // Reverse the caret .caret { border-top: 0; border-bottom: 4px solid @black; content: ""; } // Different positioning for bottom up menu .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 1px; } } // Sub menus // --------------------------- .dropdown-submenu { position: relative; } // Default dropdowns .dropdown-submenu > .dropdown-menu { top: 0; left: 100%; margin-top: -6px; margin-left: -1px; .border-radius(0 6px 6px 6px); } .dropdown-submenu:hover > .dropdown-menu { display: block; } // Dropups .dropup .dropdown-submenu > .dropdown-menu { top: auto; bottom: 0; margin-top: 0; margin-bottom: -2px; .border-radius(5px 5px 5px 0); } // Caret to indicate there is a submenu .dropdown-submenu > a:after { display: block; content: " "; float: right; width: 0; height: 0; border-color: transparent; border-style: solid; border-width: 5px 0 5px 5px; border-left-color: darken(@dropdownBackground, 20%); margin-top: 5px; margin-right: -10px; } .dropdown-submenu:hover > a:after { border-left-color: @dropdownLinkColorHover; } // Left aligned submenus .dropdown-submenu.pull-left { // Undo the float // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere. float: none; // Positioning the submenu > .dropdown-menu { left: -100%; margin-left: 10px; .border-radius(6px 0 6px 6px); } } // Tweak nav headers // ----------------- // Increase padding from 15px to 20px on sides .dropdown .dropdown-menu .nav-header { padding-left: 20px; padding-right: 20px; } // Typeahead // --------- .typeahead { z-index: 1051; margin-top: 2px; // give it some space to breathe .border-radius(@baseBorderRadius); } bootstrap/popovers.less 0000604 00000006005 15245611445 0011332 0 ustar 00 // // Popovers // -------------------------------------------------- .popover { position: absolute; top: 0; left: 0; z-index: @zindexPopover; display: none; max-width: 276px; padding: 1px; text-align: left; // Reset given new insertion method background-color: @popoverBackground; -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0,0,0,.2); .border-radius(6px); .box-shadow(0 5px 10px rgba(0,0,0,.2)); // Overrides for proper insertion white-space: normal; // Offset the popover to account for the popover arrow &.top { margin-top: -10px; } &.right { margin-left: 10px; } &.bottom { margin-top: 10px; } &.left { margin-left: -10px; } } .popover-title { margin: 0; // reset heading margin padding: 8px 14px; font-size: 14px; font-weight: normal; line-height: 18px; background-color: @popoverTitleBackground; border-bottom: 1px solid darken(@popoverTitleBackground, 5%); .border-radius(5px 5px 0 0); &:empty { display: none; } } .popover-content { padding: 9px 14px; } // Arrows // // .arrow is outer, .arrow:after is inner .popover .arrow, .popover .arrow:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; border-style: solid; } .popover .arrow { border-width: @popoverArrowOuterWidth; } .popover .arrow:after { border-width: @popoverArrowWidth; content: ""; } .popover { &.top .arrow { left: 50%; margin-left: -@popoverArrowOuterWidth; border-bottom-width: 0; border-top-color: #999; // IE8 fallback border-top-color: @popoverArrowOuterColor; bottom: -@popoverArrowOuterWidth; &:after { bottom: 1px; margin-left: -@popoverArrowWidth; border-bottom-width: 0; border-top-color: @popoverArrowColor; } } &.right .arrow { top: 50%; left: -@popoverArrowOuterWidth; margin-top: -@popoverArrowOuterWidth; border-left-width: 0; border-right-color: #999; // IE8 fallback border-right-color: @popoverArrowOuterColor; &:after { left: 1px; bottom: -@popoverArrowWidth; border-left-width: 0; border-right-color: @popoverArrowColor; } } &.bottom .arrow { left: 50%; margin-left: -@popoverArrowOuterWidth; border-top-width: 0; border-bottom-color: #999; // IE8 fallback border-bottom-color: @popoverArrowOuterColor; top: -@popoverArrowOuterWidth; &:after { top: 1px; margin-left: -@popoverArrowWidth; border-top-width: 0; border-bottom-color: @popoverArrowColor; } } &.left .arrow { top: 50%; right: -@popoverArrowOuterWidth; margin-top: -@popoverArrowOuterWidth; border-right-width: 0; border-left-color: #999; // IE8 fallback border-left-color: @popoverArrowOuterColor; &:after { right: 1px; border-right-width: 0; border-left-color: @popoverArrowColor; bottom: -@popoverArrowWidth; } } } bootstrap/accordion.less 0000604 00000001174 15245611445 0011420 0 ustar 00 // // Accordion // -------------------------------------------------- // Parent container .accordion { margin-bottom: @baseLineHeight; } // Group == heading + body .accordion-group { margin-bottom: 2px; border: 1px solid #e5e5e5; .border-radius(@baseBorderRadius); } .accordion-heading { border-bottom: 0; } .accordion-heading .accordion-toggle { display: block; padding: 8px 15px; } // General toggle styles .accordion-toggle { cursor: pointer; } // Inner needs the styles because you can't animate properly with any styles on the element .accordion-inner { padding: 9px 15px; border-top: 1px solid #e5e5e5; } bootstrap/responsive-navbar.less 0000604 00000010350 15245611445 0013117 0 ustar 00 // // Responsive: Navbar // -------------------------------------------------- // TABLETS AND BELOW // ----------------- @media (max-width: @navbarCollapseWidth) { // UNFIX THE TOPBAR // ---------------- // Remove any padding from the body body { padding-top: 0; } // Unfix the navbars .navbar-fixed-top, .navbar-fixed-bottom { position: static; } .navbar-fixed-top { margin-bottom: @baseLineHeight; } .navbar-fixed-bottom { margin-top: @baseLineHeight; } .navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { padding: 5px; } .navbar .container { width: auto; padding: 0; } // Account for brand name .navbar .brand { padding-left: 10px; padding-right: 10px; margin: 0 0 0 -5px; } // COLLAPSIBLE NAVBAR // ------------------ // Nav collapse clears brand .nav-collapse { clear: both; } // Block-level the nav .nav-collapse .nav { float: none; margin: 0 0 (@baseLineHeight / 2); } .nav-collapse .nav > li { float: none; } .nav-collapse .nav > li > a { margin-bottom: 2px; } .nav-collapse .nav > .divider-vertical { display: none; } .nav-collapse .nav .nav-header { color: @navbarText; text-shadow: none; } // Nav and dropdown links in navbar .nav-collapse .nav > li > a, .nav-collapse .dropdown-menu a { padding: 9px 15px; font-weight: bold; color: @navbarLinkColor; .border-radius(3px); } // Buttons .nav-collapse .btn { padding: 4px 10px 4px; font-weight: normal; .border-radius(@baseBorderRadius); } .nav-collapse .dropdown-menu li + li a { margin-bottom: 2px; } .nav-collapse .nav > li > a:hover, .nav-collapse .nav > li > a:focus, .nav-collapse .dropdown-menu a:hover, .nav-collapse .dropdown-menu a:focus { background-color: @navbarBackground; } .navbar-inverse .nav-collapse .nav > li > a, .navbar-inverse .nav-collapse .dropdown-menu a { color: @navbarInverseLinkColor; } .navbar-inverse .nav-collapse .nav > li > a:hover, .navbar-inverse .nav-collapse .nav > li > a:focus, .navbar-inverse .nav-collapse .dropdown-menu a:hover, .navbar-inverse .nav-collapse .dropdown-menu a:focus { background-color: @navbarInverseBackground; } // Buttons in the navbar .nav-collapse.in .btn-group { margin-top: 5px; padding: 0; } // Dropdowns in the navbar .nav-collapse .dropdown-menu { position: static; top: auto; left: auto; float: none; display: none; max-width: none; margin: 0 15px; padding: 0; background-color: transparent; border: none; .border-radius(0); .box-shadow(none); } .nav-collapse .open > .dropdown-menu { display: block; } .nav-collapse .dropdown-menu:before, .nav-collapse .dropdown-menu:after { display: none; } .nav-collapse .dropdown-menu .divider { display: none; } .nav-collapse .nav > li > .dropdown-menu { &:before, &:after { display: none; } } // Forms in navbar .nav-collapse .navbar-form, .nav-collapse .navbar-search { float: none; padding: (@baseLineHeight / 2) 15px; margin: (@baseLineHeight / 2) 0; border-top: 1px solid @navbarBackground; border-bottom: 1px solid @navbarBackground; .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)"); } .navbar-inverse .nav-collapse .navbar-form, .navbar-inverse .nav-collapse .navbar-search { border-top-color: @navbarInverseBackground; border-bottom-color: @navbarInverseBackground; } // Pull right (secondary) nav content .navbar .nav-collapse .nav.pull-right { float: none; margin-left: 0; } // Hide everything in the navbar save .brand and toggle button */ .nav-collapse, .nav-collapse.collapse { overflow: hidden; height: 0; } // Navbar button .navbar .btn-navbar { display: block; } // STATIC NAVBAR // ------------- .navbar-static .navbar-inner { padding-left: 10px; padding-right: 10px; } } // DEFAULT DESKTOP // --------------- @media (min-width: @navbarCollapseDesktopWidth) { // Required to make the collapsing navbar work on regular desktops .nav-collapse.collapse { height: auto !important; overflow: visible !important; } } bootstrap/responsive.less 0000604 00000002044 15245611445 0011651 0 ustar 00 /*! * Bootstrap Responsive v2.3.2 * * Copyright 2013 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world by @mdo and @fat. */ // Responsive.less // For phone and tablet devices // ------------------------------------------------------------- // REPEAT VARIABLES & MIXINS // ------------------------- // Required since we compile the responsive stuff separately @import "variables.less"; // Modify this for custom colors, font-sizes, etc @import "mixins.less"; // RESPONSIVE CLASSES // ------------------ @import "responsive-utilities.less"; // MEDIA QUERIES // ------------------ // Large desktops @import "responsive-1200px-min.less"; // Tablets to regular desktops @import "responsive-768px-979px.less"; // Phones to portrait tablets and narrow desktops @import "responsive-767px-max.less"; // RESPONSIVE NAVBAR // ------------------ // From 979px and below, show a button to toggle navbar contents @import "responsive-navbar.less"; bootstrap/breadcrumbs.less 0000604 00000000657 15245611445 0011755 0 ustar 00 // // Breadcrumbs // -------------------------------------------------- .breadcrumb { padding: 8px 15px; margin: 0 0 @baseLineHeight; list-style: none; background-color: #f5f5f5; .border-radius(@baseBorderRadius); > li { display: inline-block; .ie7-inline-block(); text-shadow: 0 1px 0 @white; > .divider { padding: 0 5px; color: #ccc; } } > .active { color: @grayLight; } } bootstrap/sprites.less 0000604 00000025131 15245611445 0011147 0 ustar 00 // // Sprites // -------------------------------------------------- // ICONS // ----- // All icons receive the styles of the <i> tag with a base class // of .i and are then given a unique class to add width, height, // and background-position. Your resulting HTML will look like // <i class="icon-inbox"></i>. // For the white version of the icons, just add the .icon-white class: // <i class="icon-inbox icon-white"></i> [class^="icon-"], [class*=" icon-"] { display: inline-block; width: 14px; height: 14px; .ie7-restore-right-whitespace(); line-height: 14px; vertical-align: text-top; background-image: url("@{iconSpritePath}"); background-position: 14px 14px; background-repeat: no-repeat; margin-top: 1px; } /* White icons with optional class, or on hover/focus/active states of certain elements */ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], .nav-list > .active > a > [class^="icon-"], .nav-list > .active > a > [class*=" icon-"], .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], .dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], .dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], .dropdown-submenu:focus > a > [class^="icon-"], .dropdown-submenu:hover > a > [class*=" icon-"], .dropdown-submenu:focus > a > [class*=" icon-"] { background-image: url("@{iconWhiteSpritePath}"); } .icon-glass { background-position: 0 0; } .icon-music { background-position: -24px 0; } .icon-search { background-position: -48px 0; } .icon-envelope { background-position: -72px 0; } .icon-heart { background-position: -96px 0; } .icon-star { background-position: -120px 0; } .icon-star-empty { background-position: -144px 0; } .icon-user { background-position: -168px 0; } .icon-film { background-position: -192px 0; } .icon-th-large { background-position: -216px 0; } .icon-th { background-position: -240px 0; } .icon-th-list { background-position: -264px 0; } .icon-ok { background-position: -288px 0; } .icon-remove { background-position: -312px 0; } .icon-zoom-in { background-position: -336px 0; } .icon-zoom-out { background-position: -360px 0; } .icon-off { background-position: -384px 0; } .icon-signal { background-position: -408px 0; } .icon-cog { background-position: -432px 0; } .icon-trash { background-position: -456px 0; } .icon-home { background-position: 0 -24px; } .icon-file { background-position: -24px -24px; } .icon-time { background-position: -48px -24px; } .icon-road { background-position: -72px -24px; } .icon-download-alt { background-position: -96px -24px; } .icon-download { background-position: -120px -24px; } .icon-upload { background-position: -144px -24px; } .icon-inbox { background-position: -168px -24px; } .icon-play-circle { background-position: -192px -24px; } .icon-repeat { background-position: -216px -24px; } .icon-refresh { background-position: -240px -24px; } .icon-list-alt { background-position: -264px -24px; } .icon-lock { background-position: -287px -24px; } // 1px off .icon-flag { background-position: -312px -24px; } .icon-headphones { background-position: -336px -24px; } .icon-volume-off { background-position: -360px -24px; } .icon-volume-down { background-position: -384px -24px; } .icon-volume-up { background-position: -408px -24px; } .icon-qrcode { background-position: -432px -24px; } .icon-barcode { background-position: -456px -24px; } .icon-tag { background-position: 0 -48px; } .icon-tags { background-position: -25px -48px; } // 1px off .icon-book { background-position: -48px -48px; } .icon-bookmark { background-position: -72px -48px; } .icon-print { background-position: -96px -48px; } .icon-camera { background-position: -120px -48px; } .icon-font { background-position: -144px -48px; } .icon-bold { background-position: -167px -48px; } // 1px off .icon-italic { background-position: -192px -48px; } .icon-text-height { background-position: -216px -48px; } .icon-text-width { background-position: -240px -48px; } .icon-align-left { background-position: -264px -48px; } .icon-align-center { background-position: -288px -48px; } .icon-align-right { background-position: -312px -48px; } .icon-align-justify { background-position: -336px -48px; } .icon-list { background-position: -360px -48px; } .icon-indent-left { background-position: -384px -48px; } .icon-indent-right { background-position: -408px -48px; } .icon-facetime-video { background-position: -432px -48px; } .icon-picture { background-position: -456px -48px; } .icon-pencil { background-position: 0 -72px; } .icon-map-marker { background-position: -24px -72px; } .icon-adjust { background-position: -48px -72px; } .icon-tint { background-position: -72px -72px; } .icon-edit { background-position: -96px -72px; } .icon-share { background-position: -120px -72px; } .icon-check { background-position: -144px -72px; } .icon-move { background-position: -168px -72px; } .icon-step-backward { background-position: -192px -72px; } .icon-fast-backward { background-position: -216px -72px; } .icon-backward { background-position: -240px -72px; } .icon-play { background-position: -264px -72px; } .icon-pause { background-position: -288px -72px; } .icon-stop { background-position: -312px -72px; } .icon-forward { background-position: -336px -72px; } .icon-fast-forward { background-position: -360px -72px; } .icon-step-forward { background-position: -384px -72px; } .icon-eject { background-position: -408px -72px; } .icon-chevron-left { background-position: -432px -72px; } .icon-chevron-right { background-position: -456px -72px; } .icon-plus-sign { background-position: 0 -96px; } .icon-minus-sign { background-position: -24px -96px; } .icon-remove-sign { background-position: -48px -96px; } .icon-ok-sign { background-position: -72px -96px; } .icon-question-sign { background-position: -96px -96px; } .icon-info-sign { background-position: -120px -96px; } .icon-screenshot { background-position: -144px -96px; } .icon-remove-circle { background-position: -168px -96px; } .icon-ok-circle { background-position: -192px -96px; } .icon-ban-circle { background-position: -216px -96px; } .icon-arrow-left { background-position: -240px -96px; } .icon-arrow-right { background-position: -264px -96px; } .icon-arrow-up { background-position: -289px -96px; } // 1px off .icon-arrow-down { background-position: -312px -96px; } .icon-share-alt { background-position: -336px -96px; } .icon-resize-full { background-position: -360px -96px; } .icon-resize-small { background-position: -384px -96px; } .icon-plus { background-position: -408px -96px; } .icon-minus { background-position: -433px -96px; } .icon-asterisk { background-position: -456px -96px; } .icon-exclamation-sign { background-position: 0 -120px; } .icon-gift { background-position: -24px -120px; } .icon-leaf { background-position: -48px -120px; } .icon-fire { background-position: -72px -120px; } .icon-eye-open { background-position: -96px -120px; } .icon-eye-close { background-position: -120px -120px; } .icon-warning-sign { background-position: -144px -120px; } .icon-plane { background-position: -168px -120px; } .icon-calendar { background-position: -192px -120px; } .icon-random { background-position: -216px -120px; width: 16px; } .icon-comment { background-position: -240px -120px; } .icon-magnet { background-position: -264px -120px; } .icon-chevron-up { background-position: -288px -120px; } .icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off .icon-retweet { background-position: -336px -120px; } .icon-shopping-cart { background-position: -360px -120px; } .icon-folder-close { background-position: -384px -120px; width: 16px; } .icon-folder-open { background-position: -408px -120px; width: 16px; } .icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off .icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off .icon-hdd { background-position: 0 -144px; } .icon-bullhorn { background-position: -24px -144px; } .icon-bell { background-position: -48px -144px; } .icon-certificate { background-position: -72px -144px; } .icon-thumbs-up { background-position: -96px -144px; } .icon-thumbs-down { background-position: -120px -144px; } .icon-hand-right { background-position: -144px -144px; } .icon-hand-left { background-position: -168px -144px; } .icon-hand-up { background-position: -192px -144px; } .icon-hand-down { background-position: -216px -144px; } .icon-circle-arrow-right { background-position: -240px -144px; } .icon-circle-arrow-left { background-position: -264px -144px; } .icon-circle-arrow-up { background-position: -288px -144px; } .icon-circle-arrow-down { background-position: -312px -144px; } .icon-globe { background-position: -336px -144px; } .icon-wrench { background-position: -360px -144px; } .icon-tasks { background-position: -384px -144px; } .icon-filter { background-position: -408px -144px; } .icon-briefcase { background-position: -432px -144px; } .icon-fullscreen { background-position: -456px -144px; } bootstrap/tables.less 0000604 00000014157 15245611445 0010736 0 ustar 00 // // Tables // -------------------------------------------------- // BASE TABLES // ----------------- table { max-width: 100%; background-color: @tableBackground; border-collapse: collapse; border-spacing: 0; } // BASELINE STYLES // --------------- .table { width: 100%; margin-bottom: @baseLineHeight; // Cells th, td { padding: 8px; line-height: @baseLineHeight; text-align: left; vertical-align: top; border-top: 1px solid @tableBorder; } th { font-weight: bold; } // Bottom align for column headings thead th { vertical-align: bottom; } // Remove top border from thead by default caption + thead tr:first-child th, caption + thead tr:first-child td, colgroup + thead tr:first-child th, colgroup + thead tr:first-child td, thead:first-child tr:first-child th, thead:first-child tr:first-child td { border-top: 0; } // Account for multiple tbody instances tbody + tbody { border-top: 2px solid @tableBorder; } // Nesting .table { background-color: @bodyBackground; } } // CONDENSED TABLE W/ HALF PADDING // ------------------------------- .table-condensed { th, td { padding: 4px 5px; } } // BORDERED VERSION // ---------------- .table-bordered { border: 1px solid @tableBorder; border-collapse: separate; // Done so we can round those corners! *border-collapse: collapse; // IE7 can't round corners anyway border-left: 0; .border-radius(@baseBorderRadius); th, td { border-left: 1px solid @tableBorder; } // Prevent a double border caption + thead tr:first-child th, caption + tbody tr:first-child th, caption + tbody tr:first-child td, colgroup + thead tr:first-child th, colgroup + tbody tr:first-child th, colgroup + tbody tr:first-child td, thead:first-child tr:first-child th, tbody:first-child tr:first-child th, tbody:first-child tr:first-child td { border-top: 0; } // For first th/td in the first row in the first thead or tbody thead:first-child tr:first-child > th:first-child, tbody:first-child tr:first-child > td:first-child, tbody:first-child tr:first-child > th:first-child { .border-top-left-radius(@baseBorderRadius); } // For last th/td in the first row in the first thead or tbody thead:first-child tr:first-child > th:last-child, tbody:first-child tr:first-child > td:last-child, tbody:first-child tr:first-child > th:last-child { .border-top-right-radius(@baseBorderRadius); } // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot thead:last-child tr:last-child > th:first-child, tbody:last-child tr:last-child > td:first-child, tbody:last-child tr:last-child > th:first-child, tfoot:last-child tr:last-child > td:first-child, tfoot:last-child tr:last-child > th:first-child { .border-bottom-left-radius(@baseBorderRadius); } // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot thead:last-child tr:last-child > th:last-child, tbody:last-child tr:last-child > td:last-child, tbody:last-child tr:last-child > th:last-child, tfoot:last-child tr:last-child > td:last-child, tfoot:last-child tr:last-child > th:last-child { .border-bottom-right-radius(@baseBorderRadius); } // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot tfoot + tbody:last-child tr:last-child td:first-child { .border-bottom-left-radius(0); } tfoot + tbody:last-child tr:last-child td:last-child { .border-bottom-right-radius(0); } // Special fixes to round the left border on the first td/th caption + thead tr:first-child th:first-child, caption + tbody tr:first-child td:first-child, colgroup + thead tr:first-child th:first-child, colgroup + tbody tr:first-child td:first-child { .border-top-left-radius(@baseBorderRadius); } caption + thead tr:first-child th:last-child, caption + tbody tr:first-child td:last-child, colgroup + thead tr:first-child th:last-child, colgroup + tbody tr:first-child td:last-child { .border-top-right-radius(@baseBorderRadius); } } // ZEBRA-STRIPING // -------------- // Default zebra-stripe styles (alternating gray and transparent backgrounds) .table-striped { tbody { > tr:nth-child(odd) > td, > tr:nth-child(odd) > th { background-color: @tableBackgroundAccent; } } } // HOVER EFFECT // ------------ // Placed here since it has to come after the potential zebra striping .table-hover { tbody { tr:hover > td, tr:hover > th { background-color: @tableBackgroundHover; } } } // TABLE CELL SIZING // ----------------- // Reset default grid behavior table td[class*="span"], table th[class*="span"], .row-fluid table td[class*="span"], .row-fluid table th[class*="span"] { display: table-cell; float: none; // undo default grid column styles margin-left: 0; // undo default grid column styles } // Change the column widths to account for td/th padding .table td, .table th { &.span1 { .tableColumns(1); } &.span2 { .tableColumns(2); } &.span3 { .tableColumns(3); } &.span4 { .tableColumns(4); } &.span5 { .tableColumns(5); } &.span6 { .tableColumns(6); } &.span7 { .tableColumns(7); } &.span8 { .tableColumns(8); } &.span9 { .tableColumns(9); } &.span10 { .tableColumns(10); } &.span11 { .tableColumns(11); } &.span12 { .tableColumns(12); } } // TABLE BACKGROUNDS // ----------------- // Exact selectors below required to override .table-striped .table tbody tr { &.success > td { background-color: @successBackground; } &.error > td { background-color: @errorBackground; } &.warning > td { background-color: @warningBackground; } &.info > td { background-color: @infoBackground; } } // Hover states for .table-hover .table-hover tbody tr { &.success:hover > td { background-color: darken(@successBackground, 5%); } &.error:hover > td { background-color: darken(@errorBackground, 5%); } &.warning:hover > td { background-color: darken(@warningBackground, 5%); } &.info:hover > td { background-color: darken(@infoBackground, 5%); } } bootstrap/bootstrap.less 0000604 00000002710 15245611445 0011471 0 ustar 00 /*! * Bootstrap v2.3.2 * * Copyright 2013 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world by @mdo and @fat. */ // Core variables and mixins @import "variables.less"; // Modify this for custom colors, font-sizes, etc @import "mixins.less"; // CSS Reset @import "reset.less"; // Grid system and page structure @import "scaffolding.less"; @import "grid.less"; @import "layouts.less"; // Base CSS @import "type.less"; @import "code.less"; @import "forms.less"; @import "tables.less"; // Components: common @import "sprites.less"; @import "dropdowns.less"; @import "wells.less"; @import "component-animations.less"; @import "close.less"; // Components: Buttons & Alerts @import "buttons.less"; @import "button-groups.less"; @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less // Components: Nav @import "navs.less"; @import "navbar.less"; @import "breadcrumbs.less"; @import "pagination.less"; @import "pager.less"; // Components: Popovers @import "modals.less"; @import "tooltip.less"; @import "popovers.less"; // Components: Misc @import "thumbnails.less"; @import "media.less"; @import "labels-badges.less"; @import "progress-bars.less"; @import "accordion.less"; @import "carousel.less"; @import "hero-unit.less"; // Utility classes @import "utilities.less"; // Has to be last to override when necessary bootstrap/code.less 0000604 00000002402 15245611445 0010364 0 ustar 00 // // Code (inline and blocK) // -------------------------------------------------- // Inline and block code styles code, pre { padding: 0 3px 2px; #font > #family > .monospace; font-size: @baseFontSize - 2; color: @grayDark; .border-radius(3px); } // Inline code code { padding: 2px 4px; color: #d14; background-color: #f7f7f9; border: 1px solid #e1e1e8; white-space: nowrap; } // Blocks of code pre { display: block; padding: (@baseLineHeight - 1) / 2; margin: 0 0 @baseLineHeight / 2; font-size: @baseFontSize - 1; // 14px to 13px line-height: @baseLineHeight; word-break: break-all; word-wrap: break-word; white-space: pre; white-space: pre-wrap; background-color: #f5f5f5; border: 1px solid #ccc; // fallback for IE7-8 border: 1px solid rgba(0,0,0,.15); .border-radius(@baseBorderRadius); // Make prettyprint styles more spaced out for readability &.prettyprint { margin-bottom: @baseLineHeight; } // Account for some code outputs that place code tags in pre tags code { padding: 0; color: inherit; white-space: pre; white-space: pre-wrap; background-color: transparent; border: 0; } } // Enable scrollable blocks of code .pre-scrollable { max-height: 340px; overflow-y: scroll; } bootstrap/pagination.less 0000604 00000005166 15245611445 0011615 0 ustar 00 // // Pagination (multiple pages) // -------------------------------------------------- // Space out pagination from surrounding content .pagination { margin: @baseLineHeight 0; } .pagination ul { // Allow for text-based alignment display: inline-block; .ie7-inline-block(); // Reset default ul styles margin-left: 0; margin-bottom: 0; // Visuals .border-radius(@baseBorderRadius); .box-shadow(0 1px 2px rgba(0,0,0,.05)); } .pagination ul > li { display: inline; // Remove list-style and block-level defaults } .pagination ul > li > a, .pagination ul > li > span { float: left; // Collapse white-space padding: 4px 12px; line-height: @baseLineHeight; text-decoration: none; background-color: @paginationBackground; border: 1px solid @paginationBorder; border-left-width: 0; } .pagination ul > li > a:hover, .pagination ul > li > a:focus, .pagination ul > .active > a, .pagination ul > .active > span { background-color: @paginationActiveBackground; } .pagination ul > .active > a, .pagination ul > .active > span { color: @grayLight; cursor: default; } .pagination ul > .disabled > span, .pagination ul > .disabled > a, .pagination ul > .disabled > a:hover, .pagination ul > .disabled > a:focus { color: @grayLight; background-color: transparent; cursor: default; } .pagination ul > li:first-child > a, .pagination ul > li:first-child > span { border-left-width: 1px; .border-left-radius(@baseBorderRadius); } .pagination ul > li:last-child > a, .pagination ul > li:last-child > span { .border-right-radius(@baseBorderRadius); } // Alignment // -------------------------------------------------- .pagination-centered { text-align: center; } .pagination-right { text-align: right; } // Sizing // -------------------------------------------------- // Large .pagination-large { ul > li > a, ul > li > span { padding: @paddingLarge; font-size: @fontSizeLarge; } ul > li:first-child > a, ul > li:first-child > span { .border-left-radius(@borderRadiusLarge); } ul > li:last-child > a, ul > li:last-child > span { .border-right-radius(@borderRadiusLarge); } } // Small and mini .pagination-mini, .pagination-small { ul > li:first-child > a, ul > li:first-child > span { .border-left-radius(@borderRadiusSmall); } ul > li:last-child > a, ul > li:last-child > span { .border-right-radius(@borderRadiusSmall); } } // Small .pagination-small { ul > li > a, ul > li > span { padding: @paddingSmall; font-size: @fontSizeSmall; } } // Mini .pagination-mini { ul > li > a, ul > li > span { padding: @paddingMini; font-size: @fontSizeMini; } } bootstrap/close.less 0000604 00000001204 15245611445 0010556 0 ustar 00 // // Close icons // -------------------------------------------------- .close { float: right; font-size: 20px; font-weight: bold; line-height: @baseLineHeight; color: @black; text-shadow: 0 1px 0 rgba(255,255,255,1); .opacity(20); &:hover, &:focus { color: @black; text-decoration: none; cursor: pointer; .opacity(40); } } // Additional properties for button version // iOS requires the button element instead of an anchor tag. // If you want the anchor version, it requires `href="#"`. button.close { padding: 0; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; } bootstrap/media.less 0000604 00000001534 15245611445 0010536 0 ustar 00 // Media objects // Source: http://stubbornella.org/content/?p=497 // -------------------------------------------------- // Common styles // ------------------------- // Clear the floats .media, .media-body { overflow: hidden; *overflow: visible; zoom: 1; } // Proper spacing between instances of .media .media, .media .media { margin-top: 15px; } .media:first-child { margin-top: 0; } // For images and videos, set to block .media-object { display: block; } // Reset margins on headings for tighter default spacing .media-heading { margin: 0 0 5px; } // Media image alignment // ------------------------- .media > .pull-left { margin-right: 10px; } .media > .pull-right { margin-left: 10px; } // Media list variation // ------------------------- // Undo default ul/ol styles .media-list { margin-left: 0; list-style: none; } bootstrap/pager.less 0000604 00000001370 15245611445 0010553 0 ustar 00 // // Pager pagination // -------------------------------------------------- .pager { margin: @baseLineHeight 0; list-style: none; text-align: center; .clearfix(); } .pager li { display: inline; } .pager li > a, .pager li > span { display: inline-block; padding: 5px 14px; background-color: #fff; border: 1px solid #ddd; .border-radius(15px); } .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #f5f5f5; } .pager .next > a, .pager .next > span { float: right; } .pager .previous > a, .pager .previous > span { float: left; } .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: @grayLight; background-color: #fff; cursor: default; } bootstrap/navs.less 0000604 00000017743 15245611445 0010437 0 ustar 00 // // Navs // -------------------------------------------------- // BASE CLASS // ---------- .nav { margin-left: 0; margin-bottom: @baseLineHeight; list-style: none; } // Make links block level .nav > li > a { display: block; } .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: @grayLighter; } // Prevent IE8 from misplacing imgs // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 .nav > li > a > img { max-width: none; } // Redeclare pull classes because of specifity .nav > .pull-right { float: right; } // Nav headers (for dropdowns and lists) .nav-header { display: block; padding: 3px 15px; font-size: 11px; font-weight: bold; line-height: @baseLineHeight; color: @grayLight; text-shadow: 0 1px 0 rgba(255,255,255,.5); text-transform: uppercase; } // Space them out when they follow another list item (link) .nav li + .nav-header { margin-top: 9px; } // NAV LIST // -------- .nav-list { padding-left: 15px; padding-right: 15px; margin-bottom: 0; } .nav-list > li > a, .nav-list .nav-header { margin-left: -15px; margin-right: -15px; text-shadow: 0 1px 0 rgba(255,255,255,.5); } .nav-list > li > a { padding: 3px 15px; } .nav-list > .active > a, .nav-list > .active > a:hover, .nav-list > .active > a:focus { color: @white; text-shadow: 0 -1px 0 rgba(0,0,0,.2); background-color: @linkColor; } .nav-list [class^="icon-"], .nav-list [class*=" icon-"] { margin-right: 2px; } // Dividers (basically an hr) within the dropdown .nav-list .divider { .nav-divider(); } // TABS AND PILLS // ------------- // Common styles .nav-tabs, .nav-pills { .clearfix(); } .nav-tabs > li, .nav-pills > li { float: left; } .nav-tabs > li > a, .nav-pills > li > a { padding-right: 12px; padding-left: 12px; margin-right: 2px; line-height: 14px; // keeps the overall height an even number } // TABS // ---- // Give the tabs something to sit on .nav-tabs { border-bottom: 1px solid #ddd; } // Make the list-items overlay the bottom border .nav-tabs > li { margin-bottom: -1px; } // Actual tabs (as links) .nav-tabs > li > a { padding-top: 8px; padding-bottom: 8px; line-height: @baseLineHeight; border: 1px solid transparent; .border-radius(4px 4px 0 0); &:hover, &:focus { border-color: @grayLighter @grayLighter #ddd; } } // Active state, and it's :hover/:focus to override normal :hover/:focus .nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus { color: @gray; background-color: @bodyBackground; border: 1px solid #ddd; border-bottom-color: transparent; cursor: default; } // PILLS // ----- // Links rendered as pills .nav-pills > li > a { padding-top: 8px; padding-bottom: 8px; margin-top: 2px; margin-bottom: 2px; .border-radius(5px); } // Active state .nav-pills > .active > a, .nav-pills > .active > a:hover, .nav-pills > .active > a:focus { color: @white; background-color: @linkColor; } // STACKED NAV // ----------- // Stacked tabs and pills .nav-stacked > li { float: none; } .nav-stacked > li > a { margin-right: 0; // no need for the gap between nav items } // Tabs .nav-tabs.nav-stacked { border-bottom: 0; } .nav-tabs.nav-stacked > li > a { border: 1px solid #ddd; .border-radius(0); } .nav-tabs.nav-stacked > li:first-child > a { .border-top-radius(4px); } .nav-tabs.nav-stacked > li:last-child > a { .border-bottom-radius(4px); } .nav-tabs.nav-stacked > li > a:hover, .nav-tabs.nav-stacked > li > a:focus { border-color: #ddd; z-index: 2; } // Pills .nav-pills.nav-stacked > li > a { margin-bottom: 3px; } .nav-pills.nav-stacked > li:last-child > a { margin-bottom: 1px; // decrease margin to match sizing of stacked tabs } // DROPDOWNS // --------- .nav-tabs .dropdown-menu { .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu } .nav-pills .dropdown-menu { .border-radius(6px); // make rounded corners match the pills } // Default dropdown links // ------------------------- // Make carets use linkColor to start .nav .dropdown-toggle .caret { border-top-color: @linkColor; border-bottom-color: @linkColor; margin-top: 6px; } .nav .dropdown-toggle:hover .caret, .nav .dropdown-toggle:focus .caret { border-top-color: @linkColorHover; border-bottom-color: @linkColorHover; } /* move down carets for tabs */ .nav-tabs .dropdown-toggle .caret { margin-top: 8px; } // Active dropdown links // ------------------------- .nav .active .dropdown-toggle .caret { border-top-color: #fff; border-bottom-color: #fff; } .nav-tabs .active .dropdown-toggle .caret { border-top-color: @gray; border-bottom-color: @gray; } // Active:hover/:focus dropdown links // ------------------------- .nav > .dropdown.active > a:hover, .nav > .dropdown.active > a:focus { cursor: pointer; } // Open dropdowns // ------------------------- .nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav > li.dropdown.open.active > a:hover, .nav > li.dropdown.open.active > a:focus { color: @white; background-color: @grayLight; border-color: @grayLight; } .nav li.dropdown.open .caret, .nav li.dropdown.open.active .caret, .nav li.dropdown.open a:hover .caret, .nav li.dropdown.open a:focus .caret { border-top-color: @white; border-bottom-color: @white; .opacity(100); } // Dropdowns in stacked tabs .tabs-stacked .open > a:hover, .tabs-stacked .open > a:focus { border-color: @grayLight; } // TABBABLE // -------- // COMMON STYLES // ------------- // Clear any floats .tabbable { .clearfix(); } .tab-content { overflow: auto; // prevent content from running below tabs } // Remove border on bottom, left, right .tabs-below > .nav-tabs, .tabs-right > .nav-tabs, .tabs-left > .nav-tabs { border-bottom: 0; } // Show/hide tabbable areas .tab-content > .tab-pane, .pill-content > .pill-pane { display: none; } .tab-content > .active, .pill-content > .active { display: block; } // BOTTOM // ------ .tabs-below > .nav-tabs { border-top: 1px solid #ddd; } .tabs-below > .nav-tabs > li { margin-top: -1px; margin-bottom: 0; } .tabs-below > .nav-tabs > li > a { .border-radius(0 0 4px 4px); &:hover, &:focus { border-bottom-color: transparent; border-top-color: #ddd; } } .tabs-below > .nav-tabs > .active > a, .tabs-below > .nav-tabs > .active > a:hover, .tabs-below > .nav-tabs > .active > a:focus { border-color: transparent #ddd #ddd #ddd; } // LEFT & RIGHT // ------------ // Common styles .tabs-left > .nav-tabs > li, .tabs-right > .nav-tabs > li { float: none; } .tabs-left > .nav-tabs > li > a, .tabs-right > .nav-tabs > li > a { min-width: 74px; margin-right: 0; margin-bottom: 3px; } // Tabs on the left .tabs-left > .nav-tabs { float: left; margin-right: 19px; border-right: 1px solid #ddd; } .tabs-left > .nav-tabs > li > a { margin-right: -1px; .border-radius(4px 0 0 4px); } .tabs-left > .nav-tabs > li > a:hover, .tabs-left > .nav-tabs > li > a:focus { border-color: @grayLighter #ddd @grayLighter @grayLighter; } .tabs-left > .nav-tabs .active > a, .tabs-left > .nav-tabs .active > a:hover, .tabs-left > .nav-tabs .active > a:focus { border-color: #ddd transparent #ddd #ddd; *border-right-color: @white; } // Tabs on the right .tabs-right > .nav-tabs { float: right; margin-left: 19px; border-left: 1px solid #ddd; } .tabs-right > .nav-tabs > li > a { margin-left: -1px; .border-radius(0 4px 4px 0); } .tabs-right > .nav-tabs > li > a:hover, .tabs-right > .nav-tabs > li > a:focus { border-color: @grayLighter @grayLighter @grayLighter #ddd; } .tabs-right > .nav-tabs .active > a, .tabs-right > .nav-tabs .active > a:hover, .tabs-right > .nav-tabs .active > a:focus { border-color: #ddd #ddd #ddd transparent; *border-left-color: @white; } // DISABLED STATES // --------------- // Gray out text .nav > .disabled > a { color: @grayLight; } // Nuke hover/focus effects .nav > .disabled > a:hover, .nav > .disabled > a:focus { text-decoration: none; background-color: transparent; cursor: default; } bootstrap/navbar.less 0000604 00000027342 15245611445 0010735 0 ustar 00 // // Navbars (Redux) // -------------------------------------------------- // COMMON STYLES // ------------- // Base class and wrapper .navbar { overflow: visible; margin-bottom: @baseLineHeight; // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar *position: relative; *z-index: 2; } // Inner for background effects // Gradient is applied to its own element because overflow visible is not honored by IE when filter is present .navbar-inner { min-height: @navbarHeight; padding-left: 20px; padding-right: 20px; #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground); border: 1px solid @navbarBorder; .border-radius(@baseBorderRadius); .box-shadow(0 1px 4px rgba(0,0,0,.065)); // Prevent floats from breaking the navbar .clearfix(); } // Set width to auto for default container // We then reset it for fixed navbars in the #gridSystem mixin .navbar .container { width: auto; } // Override the default collapsed state .nav-collapse.collapse { height: auto; overflow: visible; } // Brand: website or project name // ------------------------- .navbar .brand { float: left; display: block; // Vertically center the text given @navbarHeight padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2); margin-left: -20px; // negative indent to left-align the text down the page font-size: 20px; font-weight: 200; color: @navbarBrandColor; text-shadow: 0 1px 0 @navbarBackgroundHighlight; &:hover, &:focus { text-decoration: none; } } // Plain text in topbar // ------------------------- .navbar-text { margin-bottom: 0; line-height: @navbarHeight; color: @navbarText; } // Janky solution for now to account for links outside the .nav // ------------------------- .navbar-link { color: @navbarLinkColor; &:hover, &:focus { color: @navbarLinkColorHover; } } // Dividers in navbar // ------------------------- .navbar .divider-vertical { height: @navbarHeight; margin: 0 9px; border-left: 1px solid @navbarBackground; border-right: 1px solid @navbarBackgroundHighlight; } // Buttons in navbar // ------------------------- .navbar .btn, .navbar .btn-group { .navbarVerticalAlign(30px); // Vertically center in navbar } .navbar .btn-group .btn, .navbar .input-prepend .btn, .navbar .input-append .btn, .navbar .input-prepend .btn-group, .navbar .input-append .btn-group { margin-top: 0; // then undo the margin here so we don't accidentally double it } // Navbar forms // ------------------------- .navbar-form { margin-bottom: 0; // remove default bottom margin .clearfix(); input, select, .radio, .checkbox { .navbarVerticalAlign(30px); // Vertically center in navbar } input, select, .btn { display: inline-block; margin-bottom: 0; } input[type="image"], input[type="checkbox"], input[type="radio"] { margin-top: 3px; } .input-append, .input-prepend { margin-top: 5px; white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left input { margin-top: 0; // remove the margin on top since it's on the parent } } } // Navbar search // ------------------------- .navbar-search { position: relative; float: left; .navbarVerticalAlign(30px); // Vertically center in navbar margin-bottom: 0; .search-query { margin-bottom: 0; padding: 4px 14px; #font > .sans-serif(13px, normal, 1); .border-radius(15px); // redeclare because of specificity of the type attribute } } // Static navbar // ------------------------- .navbar-static-top { position: static; margin-bottom: 0; // remove 18px margin for default navbar .navbar-inner { .border-radius(0); } } // Fixed navbar // ------------------------- // Shared (top/bottom) styles .navbar-fixed-top, .navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: @zindexFixedNavbar; margin-bottom: 0; // remove 18px margin for default navbar } .navbar-fixed-top .navbar-inner, .navbar-static-top .navbar-inner { border-width: 0 0 1px; } .navbar-fixed-bottom .navbar-inner { border-width: 1px 0 0; } .navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { padding-left: 0; padding-right: 0; .border-radius(0); } // Reset container width // Required here as we reset the width earlier on and the grid mixins don't override early enough .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { #grid > .core > .span(@gridColumns); } // Fixed to top .navbar-fixed-top { top: 0; } .navbar-fixed-top, .navbar-static-top { .navbar-inner { .box-shadow(~"0 1px 10px rgba(0,0,0,.1)"); } } // Fixed to bottom .navbar-fixed-bottom { bottom: 0; .navbar-inner { .box-shadow(~"0 -1px 10px rgba(0,0,0,.1)"); } } // NAVIGATION // ---------- .navbar .nav { position: relative; left: 0; display: block; float: left; margin: 0 10px 0 0; } .navbar .nav.pull-right { float: right; // redeclare due to specificity margin-right: 0; // remove margin on float right nav } .navbar .nav > li { float: left; } // Links .navbar .nav > li > a { float: none; // Vertically center the text given @navbarHeight padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2); color: @navbarLinkColor; text-decoration: none; text-shadow: 0 1px 0 @navbarBackgroundHighlight; } .navbar .nav .dropdown-toggle .caret { margin-top: 8px; } // Hover/focus .navbar .nav > li > a:focus, .navbar .nav > li > a:hover { background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover/:focus from .active color: @navbarLinkColorHover; text-decoration: none; } // Active nav items .navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus { color: @navbarLinkColorActive; text-decoration: none; background-color: @navbarLinkBackgroundActive; .box-shadow(inset 0 3px 8px rgba(0,0,0,.125)); } // Navbar button for toggling navbar items in responsive layouts // These definitions need to come after '.navbar .btn' .navbar .btn-navbar { display: none; float: right; padding: 7px 10px; margin-left: 5px; margin-right: 5px; .buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%)); .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)"); } .navbar .btn-navbar .icon-bar { display: block; width: 18px; height: 2px; background-color: #f5f5f5; .border-radius(1px); .box-shadow(0 1px 0 rgba(0,0,0,.25)); } .btn-navbar .icon-bar + .icon-bar { margin-top: 3px; } // Dropdown menus // -------------- // Menu position and menu carets .navbar .nav > li > .dropdown-menu { &:before { content: ''; display: inline-block; border-left: 7px solid transparent; border-right: 7px solid transparent; border-bottom: 7px solid #ccc; border-bottom-color: @dropdownBorder; position: absolute; top: -7px; left: 9px; } &:after { content: ''; display: inline-block; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid @dropdownBackground; position: absolute; top: -6px; left: 10px; } } // Menu position and menu caret support for dropups via extra dropup class .navbar-fixed-bottom .nav > li > .dropdown-menu { &:before { border-top: 7px solid #ccc; border-top-color: @dropdownBorder; border-bottom: 0; bottom: -7px; top: auto; } &:after { border-top: 6px solid @dropdownBackground; border-bottom: 0; bottom: -6px; top: auto; } } // Caret should match text color on hover/focus .navbar .nav li.dropdown > a:hover .caret, .navbar .nav li.dropdown > a:focus .caret { border-top-color: @navbarLinkColorHover; border-bottom-color: @navbarLinkColorHover; } // Remove background color from open dropdown .navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, .navbar .nav li.dropdown.open.active > .dropdown-toggle { background-color: @navbarLinkBackgroundActive; color: @navbarLinkColorActive; } .navbar .nav li.dropdown > .dropdown-toggle .caret { border-top-color: @navbarLinkColor; border-bottom-color: @navbarLinkColor; } .navbar .nav li.dropdown.open > .dropdown-toggle .caret, .navbar .nav li.dropdown.active > .dropdown-toggle .caret, .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { border-top-color: @navbarLinkColorActive; border-bottom-color: @navbarLinkColorActive; } // Right aligned menus need alt position .navbar .pull-right > li > .dropdown-menu, .navbar .nav > li > .dropdown-menu.pull-right { left: auto; right: 0; &:before { left: auto; right: 12px; } &:after { left: auto; right: 13px; } .dropdown-menu { left: auto; right: 100%; margin-left: 0; margin-right: -1px; .border-radius(6px 0 6px 6px); } } // Inverted navbar // ------------------------- .navbar-inverse { .navbar-inner { #gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground); border-color: @navbarInverseBorder; } .brand, .nav > li > a { color: @navbarInverseLinkColor; text-shadow: 0 -1px 0 rgba(0,0,0,.25); &:hover, &:focus { color: @navbarInverseLinkColorHover; } } .brand { color: @navbarInverseBrandColor; } .navbar-text { color: @navbarInverseText; } .nav > li > a:focus, .nav > li > a:hover { background-color: @navbarInverseLinkBackgroundHover; color: @navbarInverseLinkColorHover; } .nav .active > a, .nav .active > a:hover, .nav .active > a:focus { color: @navbarInverseLinkColorActive; background-color: @navbarInverseLinkBackgroundActive; } // Inline text links .navbar-link { color: @navbarInverseLinkColor; &:hover, &:focus { color: @navbarInverseLinkColorHover; } } // Dividers in navbar .divider-vertical { border-left-color: @navbarInverseBackground; border-right-color: @navbarInverseBackgroundHighlight; } // Dropdowns .nav li.dropdown.open > .dropdown-toggle, .nav li.dropdown.active > .dropdown-toggle, .nav li.dropdown.open.active > .dropdown-toggle { background-color: @navbarInverseLinkBackgroundActive; color: @navbarInverseLinkColorActive; } .nav li.dropdown > a:hover .caret, .nav li.dropdown > a:focus .caret { border-top-color: @navbarInverseLinkColorActive; border-bottom-color: @navbarInverseLinkColorActive; } .nav li.dropdown > .dropdown-toggle .caret { border-top-color: @navbarInverseLinkColor; border-bottom-color: @navbarInverseLinkColor; } .nav li.dropdown.open > .dropdown-toggle .caret, .nav li.dropdown.active > .dropdown-toggle .caret, .nav li.dropdown.open.active > .dropdown-toggle .caret { border-top-color: @navbarInverseLinkColorActive; border-bottom-color: @navbarInverseLinkColorActive; } // Navbar search .navbar-search { .search-query { color: @white; background-color: @navbarInverseSearchBackground; border-color: @navbarInverseSearchBorder; .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)"); .transition(none); .placeholder(@navbarInverseSearchPlaceholderColor); // Focus states (we use .focused since IE7-8 and down doesn't support :focus) &:focus, &.focused { padding: 5px 15px; color: @grayDark; text-shadow: 0 1px 0 @white; background-color: @navbarInverseSearchBackgroundFocus; border: 0; .box-shadow(0 0 3px rgba(0,0,0,.15)); outline: 0; } } } // Navbar collapse button .btn-navbar { .buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%)); } } bootstrap/progress-bars.less 0000604 00000005452 15245611445 0012253 0 ustar 00 // // Progress bars // -------------------------------------------------- // ANIMATIONS // ---------- // Webkit @-webkit-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } // Firefox @-moz-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } // IE9 @-ms-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } // Opera @-o-keyframes progress-bar-stripes { from { background-position: 0 0; } to { background-position: 40px 0; } } // Spec @keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } // THE BARS // -------- // Outer container .progress { overflow: hidden; height: @baseLineHeight; margin-bottom: @baseLineHeight; #gradient > .vertical(#f5f5f5, #f9f9f9); .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); .border-radius(@baseBorderRadius); } // Bar of progress .progress .bar { width: 0%; height: 100%; color: @white; float: left; font-size: 12px; text-align: center; text-shadow: 0 -1px 0 rgba(0,0,0,.25); #gradient > .vertical(#149bdf, #0480be); .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); .box-sizing(border-box); .transition(width .6s ease); } .progress .bar + .bar { .box-shadow(~"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)"); } // Striped bars .progress-striped .bar { #gradient > .striped(#149bdf); .background-size(40px 40px); } // Call animation for the active one .progress.active .bar { -webkit-animation: progress-bar-stripes 2s linear infinite; -moz-animation: progress-bar-stripes 2s linear infinite; -ms-animation: progress-bar-stripes 2s linear infinite; -o-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite; } // COLORS // ------ // Danger (red) .progress-danger .bar, .progress .bar-danger { #gradient > .vertical(#ee5f5b, #c43c35); } .progress-danger.progress-striped .bar, .progress-striped .bar-danger { #gradient > .striped(#ee5f5b); } // Success (green) .progress-success .bar, .progress .bar-success { #gradient > .vertical(#62c462, #57a957); } .progress-success.progress-striped .bar, .progress-striped .bar-success { #gradient > .striped(#62c462); } // Info (teal) .progress-info .bar, .progress .bar-info { #gradient > .vertical(#5bc0de, #339bb9); } .progress-info.progress-striped .bar, .progress-striped .bar-info { #gradient > .striped(#5bc0de); } // Warning (orange) .progress-warning .bar, .progress .bar-warning { #gradient > .vertical(lighten(@orange, 15%), @orange); } .progress-warning.progress-striped .bar, .progress-striped .bar-warning { #gradient > .striped(lighten(@orange, 15%)); } bootstrap/modals.less 0000604 00000003672 15245611445 0010743 0 ustar 00 // // Modals // -------------------------------------------------- // Background .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: @zindexModalBackdrop; background-color: @black; // Fade for backdrop &.fade { opacity: 0; } } .modal-backdrop, .modal-backdrop.fade.in { .opacity(80); } // Base modal .modal { position: fixed; top: 10%; left: 50%; z-index: @zindexModal; width: 560px; margin-left: -280px; background-color: @white; border: 1px solid #999; border: 1px solid rgba(0,0,0,.3); *border: 1px solid #999; /* IE6-7 */ .border-radius(6px); .box-shadow(0 3px 7px rgba(0,0,0,0.3)); .background-clip(padding-box); // Remove focus outline from opened modal outline: none; &.fade { .transition(e('opacity .3s linear, top .3s ease-out')); top: -25%; } &.fade.in { top: 10%; } } .modal-header { padding: 9px 15px; border-bottom: 1px solid #eee; // Close icon .close { margin-top: 2px; } // Heading h3 { margin: 0; line-height: 30px; } } // Body (where all modal content resides) .modal-body { position: relative; overflow-y: auto; max-height: 400px; padding: 15px; } // Remove bottom margin if need be .modal-form { margin-bottom: 0; } // Footer (for actions) .modal-footer { padding: 14px 15px 15px; margin-bottom: 0; text-align: right; // right align buttons background-color: #f5f5f5; border-top: 1px solid #ddd; .border-radius(0 0 6px 6px); .box-shadow(inset 0 1px 0 @white); .clearfix(); // clear it in case folks use .pull-* classes on buttons // Properly space out buttons .btn + .btn { margin-left: 5px; margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs } // but override that for button groups .btn-group .btn + .btn { margin-left: -1px; } // and override it for block buttons as well .btn-block + .btn-block { margin-left: 0; } } bootstrap/tooltip.less 0000604 00000003224 15245611445 0011147 0 ustar 00 // // Tooltips // -------------------------------------------------- // Base class .tooltip { position: absolute; z-index: @zindexTooltip; display: block; visibility: visible; font-size: 11px; line-height: 1.4; .opacity(0); &.in { .opacity(80); } &.top { margin-top: -3px; padding: 5px 0; } &.right { margin-left: 3px; padding: 0 5px; } &.bottom { margin-top: 3px; padding: 5px 0; } &.left { margin-left: -3px; padding: 0 5px; } } // Wrapper for the tooltip content .tooltip-inner { max-width: 200px; padding: 8px; color: @tooltipColor; text-align: center; text-decoration: none; background-color: @tooltipBackground; .border-radius(@baseBorderRadius); } // Arrows .tooltip-arrow { position: absolute; width: 0; height: 0; border-color: transparent; border-style: solid; } .tooltip { &.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -@tooltipArrowWidth; border-width: @tooltipArrowWidth @tooltipArrowWidth 0; border-top-color: @tooltipArrowColor; } &.right .tooltip-arrow { top: 50%; left: 0; margin-top: -@tooltipArrowWidth; border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0; border-right-color: @tooltipArrowColor; } &.left .tooltip-arrow { top: 50%; right: 0; margin-top: -@tooltipArrowWidth; border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth; border-left-color: @tooltipArrowColor; } &.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -@tooltipArrowWidth; border-width: 0 @tooltipArrowWidth @tooltipArrowWidth; border-bottom-color: @tooltipArrowColor; } } bootstrap/forms.less 0000604 00000036772 15245611445 0010621 0 ustar 00 // // Forms // -------------------------------------------------- // GENERAL STYLES // -------------- // Make all forms have space below them form { margin: 0 0 @baseLineHeight; } fieldset { padding: 0; margin: 0; border: 0; } // Groups of fields with labels on top (legends) legend { display: block; width: 100%; padding: 0; margin-bottom: @baseLineHeight; font-size: @baseFontSize * 1.5; line-height: @baseLineHeight * 2; color: @grayDark; border: 0; border-bottom: 1px solid #e5e5e5; // Small small { font-size: @baseLineHeight * .75; color: @grayLight; } } // Set font for forms label, input, button, select, textarea { #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here } input, button, select, textarea { font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element) } // Identify controls by their labels label { display: block; margin-bottom: 5px; } // Form controls // ------------------------- // Shared size and type resets select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input { display: inline-block; height: @baseLineHeight; padding: 4px 6px; margin-bottom: @baseLineHeight / 2; font-size: @baseFontSize; line-height: @baseLineHeight; color: @gray; .border-radius(@inputBorderRadius); vertical-align: middle; } // Reset appearance properties for textual inputs and textarea // Declare width for legacy (can't be on input[type=*] selectors or it's too specific) input, textarea, .uneditable-input { width: 206px; // plus 12px padding and 2px border } // Reset height since textareas have rows textarea { height: auto; } // Everything else textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input { background-color: @inputBackground; border: 1px solid @inputBorder; .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); .transition(~"border linear .2s, box-shadow linear .2s"); // Focus state &:focus { border-color: rgba(82,168,236,.8); outline: 0; outline: thin dotted \9; /* IE6-9 */ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)"); } } // Position radios and checkboxes better input[type="radio"], input[type="checkbox"] { margin: 4px 0 0; *margin-top: 0; /* IE7 */ margin-top: 1px \9; /* IE8-9 */ line-height: normal; } // Reset width of input images, buttons, radios, checkboxes input[type="file"], input[type="image"], input[type="submit"], input[type="reset"], input[type="button"], input[type="radio"], input[type="checkbox"] { width: auto; // Override of generic input selector } // Set the height of select and file controls to match text inputs select, input[type="file"] { height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */ *margin-top: 4px; /* For IE7, add top margin to align select with labels */ line-height: @inputHeight; } // Make select elements obey height by applying a border select { width: 220px; // default input width + 10px of padding that doesn't get applied border: 1px solid @inputBorder; background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color } // Make multiple select elements height not fixed select[multiple], select[size] { height: auto; } // Focus for select, file, radio, and checkbox select:focus, input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { .tab-focus(); } // Uneditable inputs // ------------------------- // Make uneditable inputs look inactive .uneditable-input, .uneditable-textarea { color: @grayLight; background-color: darken(@inputBackground, 1%); border-color: @inputBorder; .box-shadow(inset 0 1px 2px rgba(0,0,0,.025)); cursor: not-allowed; } // For text that needs to appear as an input but should not be an input .uneditable-input { overflow: hidden; // prevent text from wrapping, but still cut it off like an input does white-space: nowrap; } // Make uneditable textareas behave like a textarea .uneditable-textarea { width: auto; height: auto; } // Placeholder // ------------------------- // Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector input, textarea { .placeholder(); } // CHECKBOXES & RADIOS // ------------------- // Indent the labels to position radios/checkboxes as hanging .radio, .checkbox { min-height: @baseLineHeight; // clear the floating input if there is no label text padding-left: 20px; } .radio input[type="radio"], .checkbox input[type="checkbox"] { float: left; margin-left: -20px; } // Move the options list down to align with labels .controls > .radio:first-child, .controls > .checkbox:first-child { padding-top: 5px; // has to be padding because margin collaspes } // Radios and checkboxes on same line // TODO v3: Convert .inline to .control-inline .radio.inline, .checkbox.inline { display: inline-block; padding-top: 5px; margin-bottom: 0; vertical-align: middle; } .radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { margin-left: 10px; // space out consecutive inline controls } // INPUT SIZES // ----------- // General classes for quick sizes .input-mini { width: 60px; } .input-small { width: 90px; } .input-medium { width: 150px; } .input-large { width: 210px; } .input-xlarge { width: 270px; } .input-xxlarge { width: 530px; } // Grid style input sizes input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input[class*="span"], // Redeclare since the fluid row class is more specific .row-fluid input[class*="span"], .row-fluid select[class*="span"], .row-fluid textarea[class*="span"], .row-fluid .uneditable-input[class*="span"] { float: none; margin-left: 0; } // Ensure input-prepend/append never wraps .input-append input[class*="span"], .input-append .uneditable-input[class*="span"], .input-prepend input[class*="span"], .input-prepend .uneditable-input[class*="span"], .row-fluid input[class*="span"], .row-fluid select[class*="span"], .row-fluid textarea[class*="span"], .row-fluid .uneditable-input[class*="span"], .row-fluid .input-prepend [class*="span"], .row-fluid .input-append [class*="span"] { display: inline-block; } // GRID SIZING FOR INPUTS // ---------------------- // Grid sizes #grid > .input(@gridColumnWidth, @gridGutterWidth); // Control row for multiple inputs per line .controls-row { .clearfix(); // Clear the float from controls } // Float to collapse white-space for proper grid alignment .controls-row [class*="span"], // Redeclare the fluid grid collapse since we undo the float for inputs .row-fluid .controls-row [class*="span"] { float: left; } // Explicity set top padding on all checkboxes/radios, not just first-child .controls-row .checkbox[class*="span"], .controls-row .radio[class*="span"] { padding-top: 5px; } // DISABLED STATE // -------------- // Disabled and read-only inputs input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { cursor: not-allowed; background-color: @inputDisabledBackground; } // Explicitly reset the colors here input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"][readonly], input[type="checkbox"][readonly] { background-color: transparent; } // FORM FIELD FEEDBACK STATES // -------------------------- // Warning .control-group.warning { .formFieldState(@warningText, @warningText, @warningBackground); } // Error .control-group.error { .formFieldState(@errorText, @errorText, @errorBackground); } // Success .control-group.success { .formFieldState(@successText, @successText, @successBackground); } // Success .control-group.info { .formFieldState(@infoText, @infoText, @infoBackground); } // HTML5 invalid states // Shares styles with the .control-group.error above input:focus:invalid, textarea:focus:invalid, select:focus:invalid { color: #b94a48; border-color: #ee5f5b; &:focus { border-color: darken(#ee5f5b, 10%); @shadow: 0 0 6px lighten(#ee5f5b, 20%); .box-shadow(@shadow); } } // FORM ACTIONS // ------------ .form-actions { padding: (@baseLineHeight - 1) 20px @baseLineHeight; margin-top: @baseLineHeight; margin-bottom: @baseLineHeight; background-color: @formActionsBackground; border-top: 1px solid #e5e5e5; .clearfix(); // Adding clearfix to allow for .pull-right button containers } // HELP TEXT // --------- .help-block, .help-inline { color: lighten(@textColor, 15%); // lighten the text some for contrast } .help-block { display: block; // account for any element using help-block margin-bottom: @baseLineHeight / 2; } .help-inline { display: inline-block; .ie7-inline-block(); vertical-align: middle; padding-left: 5px; } // INPUT GROUPS // ------------ // Allow us to put symbols and text within the input field for a cleaner look .input-append, .input-prepend { display: inline-block; margin-bottom: @baseLineHeight / 2; vertical-align: middle; font-size: 0; // white space collapse hack white-space: nowrap; // Prevent span and input from separating // Reset the white space collapse hack input, select, .uneditable-input, .dropdown-menu, .popover { font-size: @baseFontSize; } input, select, .uneditable-input { position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms *margin-left: 0; vertical-align: top; .border-radius(0 @inputBorderRadius @inputBorderRadius 0); // Make input on top when focused so blue border and shadow always show &:focus { z-index: 2; } } .add-on { display: inline-block; width: auto; height: @baseLineHeight; min-width: 16px; padding: 4px 5px; font-size: @baseFontSize; font-weight: normal; line-height: @baseLineHeight; text-align: center; text-shadow: 0 1px 0 @white; background-color: @grayLighter; border: 1px solid #ccc; } .add-on, .btn, .btn-group > .dropdown-toggle { vertical-align: top; .border-radius(0); } .active { background-color: lighten(@green, 30); border-color: @green; } } .input-prepend { .add-on, .btn { margin-right: -1px; } .add-on:first-child, .btn:first-child { // FYI, `.btn:first-child` accounts for a button group that's prepended .border-radius(@inputBorderRadius 0 0 @inputBorderRadius); } } .input-append { input, select, .uneditable-input { .border-radius(@inputBorderRadius 0 0 @inputBorderRadius); + .btn-group .btn:last-child { .border-radius(0 @inputBorderRadius @inputBorderRadius 0); } } .add-on, .btn, .btn-group { margin-left: -1px; } .add-on:last-child, .btn:last-child, .btn-group:last-child > .dropdown-toggle { .border-radius(0 @inputBorderRadius @inputBorderRadius 0); } } // Remove all border-radius for inputs with both prepend and append .input-prepend.input-append { input, select, .uneditable-input { .border-radius(0); + .btn-group .btn { .border-radius(0 @inputBorderRadius @inputBorderRadius 0); } } .add-on:first-child, .btn:first-child { margin-right: -1px; .border-radius(@inputBorderRadius 0 0 @inputBorderRadius); } .add-on:last-child, .btn:last-child { margin-left: -1px; .border-radius(0 @inputBorderRadius @inputBorderRadius 0); } .btn-group:first-child { margin-left: 0; } } // SEARCH FORM // ----------- input.search-query { padding-right: 14px; padding-right: 4px \9; padding-left: 14px; padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */ margin-bottom: 0; // Remove the default margin on all inputs .border-radius(15px); } /* Allow for input prepend/append in search forms */ .form-search .input-append .search-query, .form-search .input-prepend .search-query { .border-radius(0); // Override due to specificity } .form-search .input-append .search-query { .border-radius(14px 0 0 14px); } .form-search .input-append .btn { .border-radius(0 14px 14px 0); } .form-search .input-prepend .search-query { .border-radius(0 14px 14px 0); } .form-search .input-prepend .btn { .border-radius(14px 0 0 14px); } // HORIZONTAL & VERTICAL FORMS // --------------------------- // Common properties // ----------------- .form-search, .form-inline, .form-horizontal { input, textarea, select, .help-inline, .uneditable-input, .input-prepend, .input-append { display: inline-block; .ie7-inline-block(); margin-bottom: 0; vertical-align: middle; } // Re-hide hidden elements due to specifity .hide { display: none; } } .form-search label, .form-inline label, .form-search .btn-group, .form-inline .btn-group { display: inline-block; } // Remove margin for input-prepend/-append .form-search .input-append, .form-inline .input-append, .form-search .input-prepend, .form-inline .input-prepend { margin-bottom: 0; } // Inline checkbox/radio labels (remove padding on left) .form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox { padding-left: 0; margin-bottom: 0; vertical-align: middle; } // Remove float and margin, set to inline-block .form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { float: left; margin-right: 3px; margin-left: 0; } // Margin to space out fieldsets .control-group { margin-bottom: @baseLineHeight / 2; } // Legend collapses margin, so next element is responsible for spacing legend + .control-group { margin-top: @baseLineHeight; -webkit-margin-top-collapse: separate; } // Horizontal-specific styles // -------------------------- .form-horizontal { // Increase spacing between groups .control-group { margin-bottom: @baseLineHeight; .clearfix(); } // Float the labels left .control-label { float: left; width: @horizontalComponentOffset - 20; padding-top: 5px; text-align: right; } // Move over all input controls and content .controls { // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend // don't inherit the margin of the parent, in this case .controls *display: inline-block; *padding-left: 20px; margin-left: @horizontalComponentOffset; *margin-left: 0; &:first-child { *padding-left: @horizontalComponentOffset; } } // Remove bottom margin on block level help text since that's accounted for on .control-group .help-block { margin-bottom: 0; } // And apply it only to .help-block instances that follow a form control input, select, textarea, .uneditable-input, .input-prepend, .input-append { + .help-block { margin-top: @baseLineHeight / 2; } } // Move over buttons in .form-actions to align with .controls .form-actions { padding-left: @horizontalComponentOffset; } } bootstrap/grid.less 0000604 00000000655 15245611445 0010407 0 ustar 00 // // Grid system // -------------------------------------------------- // Fixed (940px) #grid > .core(@gridColumnWidth, @gridGutterWidth); // Fluid (940px) #grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth); // Reset utility classes due to specificity [class*="span"].hide, .row-fluid [class*="span"].hide { display: none; } [class*="span"].pull-right, .row-fluid [class*="span"].pull-right { float: right; } bootstrap/carousel.less 0000604 00000004662 15245611445 0011301 0 ustar 00 // // Carousel // -------------------------------------------------- .carousel { position: relative; margin-bottom: @baseLineHeight; line-height: 1; } .carousel-inner { overflow: hidden; width: 100%; position: relative; } .carousel-inner { > .item { display: none; position: relative; .transition(.6s ease-in-out left); // Account for jankitude on images > img, > a > img { display: block; line-height: 1; } } > .active, > .next, > .prev { display: block; } > .active { left: 0; } > .next, > .prev { position: absolute; top: 0; width: 100%; } > .next { left: 100%; } > .prev { left: -100%; } > .next.left, > .prev.right { left: 0; } > .active.left { left: -100%; } > .active.right { left: 100%; } } // Left/right controls for nav // --------------------------- .carousel-control { position: absolute; top: 40%; left: 15px; width: 40px; height: 40px; margin-top: -20px; font-size: 60px; font-weight: 100; line-height: 30px; color: @white; text-align: center; background: @grayDarker; border: 3px solid @white; .border-radius(23px); .opacity(50); // we can't have this transition here // because webkit cancels the carousel // animation if you trip this while // in the middle of another animation // ;_; // .transition(opacity .2s linear); // Reposition the right one &.right { left: auto; right: 15px; } // Hover/focus state &:hover, &:focus { color: @white; text-decoration: none; .opacity(90); } } // Carousel indicator pips // ----------------------------- .carousel-indicators { position: absolute; top: 15px; right: 15px; z-index: 5; margin: 0; list-style: none; li { display: block; float: left; width: 10px; height: 10px; margin-left: 5px; text-indent: -999px; background-color: #ccc; background-color: rgba(255,255,255,.25); border-radius: 5px; } .active { background-color: #fff; } } // Caption for text below images // ----------------------------- .carousel-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 15px; background: @grayDark; background: rgba(0,0,0,.75); } .carousel-caption h4, .carousel-caption p { color: @white; line-height: @baseLineHeight; } .carousel-caption h4 { margin: 0 0 5px; } .carousel-caption p { margin-bottom: 0; } bootstrap/responsive-utilities.less 0000604 00000003102 15245611445 0013656 0 ustar 00 // // Responsive: Utility classes // -------------------------------------------------- // IE10 Metro responsive // Required for Windows 8 Metro split-screen snapping with IE10 // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ @-ms-viewport{ width: device-width; } // Hide from screenreaders and browsers // Credit: HTML5 Boilerplate .hidden { display: none; visibility: hidden; } // Visibility utilities // For desktops .visible-phone { display: none !important; } .visible-tablet { display: none !important; } .hidden-phone { } .hidden-tablet { } .hidden-desktop { display: none !important; } .visible-desktop { display: inherit !important; } // Tablets & small desktops only @media (min-width: 768px) and (max-width: 979px) { // Hide everything else .hidden-desktop { display: inherit !important; } .visible-desktop { display: none !important ; } // Show .visible-tablet { display: inherit !important; } // Hide .hidden-tablet { display: none !important; } } // Phones only @media (max-width: 767px) { // Hide everything else .hidden-desktop { display: inherit !important; } .visible-desktop { display: none !important; } // Show .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior // Hide .hidden-phone { display: none !important; } } // Print utilities .visible-print { display: none !important; } .hidden-print { } @media print { .visible-print { display: inherit !important; } .hidden-print { display: none !important; } } bootstrap/layouts.less 0000604 00000000511 15245611445 0011151 0 ustar 00 // // Layouts // -------------------------------------------------- // Container (centered, fixed-width layouts) .container { .container-fixed(); } // Fluid layouts (left aligned, with sidebar, min- & max-width content) .container-fluid { padding-right: @gridGutterWidth; padding-left: @gridGutterWidth; .clearfix(); } bootstrap/sprites.j32.less 0000604 00000025302 15245611445 0011544 0 ustar 00 // // Sprites // -------------------------------------------------- // ICONS // ----- // All icons receive the styles of the <i> tag with a base class // of .i and are then given a unique class to add width, height, // and background-position. Your resulting HTML will look like // <i class="icon-inbox"></i>. // For the white version of the icons, just add the .icon-white class: // <i class="icon-inbox icon-white"></i> [class^="icon-"], [class*=" icon-"] { display: inline-block; width: 14px; height: 14px; .ie7-restore-right-whitespace(); line-height: 14px; vertical-align: text-top; background-image: url("@{iconSpritePath}"); background-position: 14px 14px; background-repeat: no-repeat; margin-top: 1px; } /* White icons with optional class, or on hover/active states of certain elements */ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], .nav-list > .active > a > [class^="icon-"], .nav-list > .active > a > [class*=" icon-"], .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], .dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], .dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], .dropdown-submenu:focus > a > [class^="icon-"], .dropdown-submenu:hover > a > [class*=" icon-"], .dropdown-submenu:focus > a > [class*=" icon-"] { background-image: url("@{iconWhiteSpritePath}"); } .icon-glass { background-position: 0 0; } //.icon-music { background-position: -24px 0; } //.icon-search { background-position: -48px 0; } //.icon-envelope { background-position: -72px 0; } //.icon-heart { background-position: -96px 0; } //.icon-star { background-position: -120px 0; } //.icon-star-empty { background-position: -144px 0; } //.icon-user { background-position: -168px 0; } .icon-film { background-position: -192px 0; } .icon-th-large { background-position: -216px 0; } .icon-th { background-position: -240px 0; } .icon-th-list { background-position: -264px 0; } //.icon-ok { background-position: -288px 0; } //.icon-remove { background-position: -312px 0; } //.icon-zoom-in { background-position: -336px 0; } //.icon-zoom-out { background-position: -360px 0; } .icon-off { background-position: -384px 0; } .icon-signal { background-position: -408px 0; } //.icon-cog { background-position: -432px 0; } //.icon-trash { background-position: -456px 0; } //.icon-home { background-position: 0 -24px; } //.icon-file { background-position: -24px -24px; } .icon-time { background-position: -48px -24px; } .icon-road { background-position: -72px -24px; } .icon-download-alt { background-position: -96px -24px; } //.icon-download { background-position: -120px -24px; } //.icon-upload { background-position: -144px -24px; } .icon-inbox { background-position: -168px -24px; } //.icon-play-circle { background-position: -192px -24px; } .icon-repeat { background-position: -216px -24px; } //.icon-refresh { background-position: -240px -24px; } .icon-list-alt { background-position: -264px -24px; } //.icon-lock { background-position: -287px -24px; } // 1px off //.icon-flag { background-position: -312px -24px; } .icon-headphones { background-position: -336px -24px; } .icon-volume-off { background-position: -360px -24px; } .icon-volume-down { background-position: -384px -24px; } .icon-volume-up { background-position: -408px -24px; } .icon-qrcode { background-position: -432px -24px; } .icon-barcode { background-position: -456px -24px; } //.icon-tag { background-position: 0 -48px; } //.icon-tags { background-position: -25px -48px; } // 1px off //.icon-book { background-position: -48px -48px; } //.icon-bookmark { background-position: -72px -48px; } //.icon-print { background-position: -96px -48px; } //.icon-camera { background-position: -120px -48px; } .icon-font { background-position: -144px -48px; } .icon-bold { background-position: -167px -48px; } // 1px off .icon-italic { background-position: -192px -48px; } .icon-text-height { background-position: -216px -48px; } .icon-text-width { background-position: -240px -48px; } .icon-align-left { background-position: -264px -48px; } .icon-align-center { background-position: -288px -48px; } .icon-align-right { background-position: -312px -48px; } .icon-align-justify { background-position: -336px -48px; } //.icon-list { background-position: -360px -48px; } .icon-indent-left { background-position: -384px -48px; } .icon-indent-right { background-position: -408px -48px; } .icon-facetime-video { background-position: -432px -48px; } //.icon-picture { background-position: -456px -48px; } //.icon-pencil { background-position: 0 -72px; } .icon-map-marker { background-position: -24px -72px; } .icon-adjust { background-position: -48px -72px; } .icon-tint { background-position: -72px -72px; } //.icon-edit { background-position: -96px -72px; } //.icon-share { background-position: -120px -72px; } .icon-check { background-position: -144px -72px; } //.icon-move { background-position: -168px -72px; } .icon-step-backward { background-position: -192px -72px; } .icon-fast-backward { background-position: -216px -72px; } //.icon-backward { background-position: -240px -72px; } //.icon-play { background-position: -264px -72px; } //.icon-pause { background-position: -288px -72px; } //.icon-stop { background-position: -312px -72px; } //.icon-forward { background-position: -336px -72px; } .icon-fast-forward { background-position: -360px -72px; } .icon-step-forward { background-position: -384px -72px; } .icon-eject { background-position: -408px -72px; } //.icon-chevron-left { background-position: -432px -72px; } //.icon-chevron-right { background-position: -456px -72px; } .icon-plus-sign { background-position: 0 -96px; } //.icon-minus-sign { background-position: -24px -96px; } .icon-remove-sign { background-position: -48px -96px; } .icon-ok-sign { background-position: -72px -96px; } //.icon-question-sign { background-position: -96px -96px; } .icon-info-sign { background-position: -120px -96px; } .icon-screenshot { background-position: -144px -96px; } .icon-remove-circle { background-position: -168px -96px; } .icon-ok-circle { background-position: -192px -96px; } //.icon-ban-circle { background-position: -216px -96px; } //.icon-arrow-left { background-position: -240px -96px; } //.icon-arrow-right { background-position: -264px -96px; } .icon-arrow-up { background-position: -289px -96px; } // 1px off .icon-arrow-down { background-position: -312px -96px; } //.icon-share-alt { background-position: -336px -96px; } .icon-resize-full { background-position: -360px -96px; } .icon-resize-small { background-position: -384px -96px; } //.icon-plus { background-position: -408px -96px; } //.icon-minus { background-position: -433px -96px; } //.icon-asterisk { background-position: -456px -96px; } .icon-exclamation-sign { background-position: 0 -120px; } .icon-gift { background-position: -24px -120px; } .icon-leaf { background-position: -48px -120px; } .icon-fire { background-position: -72px -120px; } //.icon-eye-open { background-position: -96px -120px; } //.icon-eye-close { background-position: -120px -120px; } .icon-warning-sign { background-position: -144px -120px; } .icon-plane { background-position: -168px -120px; } //.icon-calendar { background-position: -192px -120px; } .icon-random { background-position: -216px -120px; width: 16px; } //.icon-comment { background-position: -240px -120px; } .icon-magnet { background-position: -264px -120px; } //.icon-chevron-up { background-position: -288px -120px; } //.icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off .icon-retweet { background-position: -336px -120px; } .icon-shopping-cart { background-position: -360px -120px; } //.icon-folder-close { background-position: -384px -120px; } //.icon-folder-open { background-position: -408px -120px; width: 16px; } .icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off .icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off .icon-hdd { background-position: 0 -144px; } .icon-bullhorn { background-position: -24px -144px; } .icon-bell { background-position: -48px -144px; } .icon-certificate { background-position: -72px -144px; } //.icon-thumbs-up { background-position: -96px -144px; } //.icon-thumbs-down { background-position: -120px -144px; } .icon-hand-right { background-position: -144px -144px; } .icon-hand-left { background-position: -168px -144px; } .icon-hand-up { background-position: -192px -144px; } .icon-hand-down { background-position: -216px -144px; } .icon-circle-arrow-right { background-position: -240px -144px; } .icon-circle-arrow-left { background-position: -264px -144px; } .icon-circle-arrow-up { background-position: -288px -144px; } .icon-circle-arrow-down { background-position: -312px -144px; } .icon-globe { background-position: -336px -144px; } //.icon-wrench { background-position: -360px -144px; } .icon-tasks { background-position: -384px -144px; } //.icon-filter { background-position: -408px -144px; } //.icon-briefcase { background-position: -432px -144px; } .icon-fullscreen { background-position: -456px -144px; } bootstrap/thumbnails.less 0000604 00000002250 15245611445 0011621 0 ustar 00 // // Thumbnails // -------------------------------------------------- // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files // Make wrapper ul behave like the grid .thumbnails { margin-left: -@gridGutterWidth; list-style: none; .clearfix(); } // Fluid rows have no left margin .row-fluid .thumbnails { margin-left: 0; } // Float li to make thumbnails appear in a row .thumbnails > li { float: left; // Explicity set the float since we don't require .span* classes margin-bottom: @baseLineHeight; margin-left: @gridGutterWidth; } // The actual thumbnail (can be `a` or `div`) .thumbnail { display: block; padding: 4px; line-height: @baseLineHeight; border: 1px solid #ddd; .border-radius(@baseBorderRadius); .box-shadow(0 1px 3px rgba(0,0,0,.055)); .transition(all .2s ease-in-out); } // Add a hover/focus state for linked versions only a.thumbnail:hover, a.thumbnail:focus { border-color: @linkColor; .box-shadow(0 1px 4px rgba(0,105,214,.25)); } // Images and captions .thumbnail > img { display: block; max-width: 100%; margin-left: auto; margin-right: auto; } .thumbnail .caption { padding: 9px; color: @gray; } bootstrap/variables.less 0000604 00000021666 15245611445 0011437 0 ustar 00 // // Variables // -------------------------------------------------- // Global values // -------------------------------------------------- // Grays // ------------------------- @black: #000; @grayDarker: #222; @grayDark: #333; @gray: #555; @grayLight: #999; @grayLighter: #eee; @white: #fff; // Accent colors // ------------------------- @blue: #049cdb; @blueDark: #0064cd; @green: #46a546; @red: #9d261d; @yellow: #ffc40d; @orange: #f89406; @pink: #c3325f; @purple: #7a43b6; // Scaffolding // ------------------------- @bodyBackground: @white; @textColor: @grayDark; // Links // ------------------------- @linkColor: #08c; @linkColorHover: darken(@linkColor, 15%); // Typography // ------------------------- @sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif; @serifFontFamily: Georgia, "Times New Roman", Times, serif; @monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace; @baseFontSize: 14px; @baseFontFamily: @sansFontFamily; @baseLineHeight: 20px; @altFontFamily: @serifFontFamily; @headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily @headingsFontWeight: bold; // instead of browser default, bold @headingsColor: inherit; // empty to use BS default, @textColor // Component sizing // ------------------------- // Based on 14px font-size and 20px line-height @fontSizeLarge: @baseFontSize * 1.25; // ~18px @fontSizeSmall: @baseFontSize * 0.85; // ~12px @fontSizeMini: @baseFontSize * 0.75; // ~11px @paddingLarge: 11px 19px; // 44px @paddingSmall: 2px 10px; // 26px @paddingMini: 0 6px; // 22px @baseBorderRadius: 4px; @borderRadiusLarge: 6px; @borderRadiusSmall: 3px; // Tables // ------------------------- @tableBackground: transparent; // overall background-color @tableBackgroundAccent: #f9f9f9; // for striping @tableBackgroundHover: #f5f5f5; // for hover @tableBorder: #ddd; // table and cell border // Buttons // ------------------------- @btnBackground: @white; @btnBackgroundHighlight: darken(@white, 10%); @btnBorder: #ccc; @btnPrimaryBackground: @linkColor; @btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%); @btnInfoBackground: #5bc0de; @btnInfoBackgroundHighlight: #2f96b4; @btnSuccessBackground: #62c462; @btnSuccessBackgroundHighlight: #51a351; @btnWarningBackground: lighten(@orange, 15%); @btnWarningBackgroundHighlight: @orange; @btnDangerBackground: #ee5f5b; @btnDangerBackgroundHighlight: #bd362f; @btnInverseBackground: #444; @btnInverseBackgroundHighlight: @grayDarker; // Forms // ------------------------- @inputBackground: @white; @inputBorder: #ccc; @inputBorderRadius: @baseBorderRadius; @inputDisabledBackground: @grayLighter; @formActionsBackground: #f5f5f5; @inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border // Dropdowns // ------------------------- @dropdownBackground: @white; @dropdownBorder: rgba(0,0,0,.2); @dropdownDividerTop: #e5e5e5; @dropdownDividerBottom: @white; @dropdownLinkColor: @grayDark; @dropdownLinkColorHover: @white; @dropdownLinkColorActive: @white; @dropdownLinkBackgroundActive: @linkColor; @dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive; // COMPONENT VARIABLES // -------------------------------------------------- // Z-index master list // ------------------------- // Used for a bird's eye view of components dependent on the z-axis // Try to avoid customizing these :) @zindexDropdown: 1000; @zindexPopover: 1010; @zindexTooltip: 1030; @zindexFixedNavbar: 1030; @zindexModalBackdrop: 1040; @zindexModal: 1050; // Sprite icons path // ------------------------- @iconSpritePath: "../img/glyphicons-halflings.png"; @iconWhiteSpritePath: "../img/glyphicons-halflings-white.png"; // Input placeholder text color // ------------------------- @placeholderText: @grayLight; // Hr border color // ------------------------- @hrBorder: @grayLighter; // Horizontal forms & lists // ------------------------- @horizontalComponentOffset: 180px; // Wells // ------------------------- @wellBackground: #f5f5f5; // Navbar // ------------------------- @navbarCollapseWidth: 979px; @navbarCollapseDesktopWidth: @navbarCollapseWidth + 1; @navbarHeight: 40px; @navbarBackgroundHighlight: #ffffff; @navbarBackground: darken(@navbarBackgroundHighlight, 5%); @navbarBorder: darken(@navbarBackground, 12%); @navbarText: #777; @navbarLinkColor: #777; @navbarLinkColorHover: @grayDark; @navbarLinkColorActive: @gray; @navbarLinkBackgroundHover: transparent; @navbarLinkBackgroundActive: darken(@navbarBackground, 5%); @navbarBrandColor: @navbarLinkColor; // Inverted navbar @navbarInverseBackground: #111111; @navbarInverseBackgroundHighlight: #222222; @navbarInverseBorder: #252525; @navbarInverseText: @grayLight; @navbarInverseLinkColor: @grayLight; @navbarInverseLinkColorHover: @white; @navbarInverseLinkColorActive: @navbarInverseLinkColorHover; @navbarInverseLinkBackgroundHover: transparent; @navbarInverseLinkBackgroundActive: @navbarInverseBackground; @navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%); @navbarInverseSearchBackgroundFocus: @white; @navbarInverseSearchBorder: @navbarInverseBackground; @navbarInverseSearchPlaceholderColor: #ccc; @navbarInverseBrandColor: @navbarInverseLinkColor; // Pagination // ------------------------- @paginationBackground: #fff; @paginationBorder: #ddd; @paginationActiveBackground: #f5f5f5; // Hero unit // ------------------------- @heroUnitBackground: @grayLighter; @heroUnitHeadingColor: inherit; @heroUnitLeadColor: inherit; // Form states and alerts // ------------------------- @warningText: #c09853; @warningBackground: #fcf8e3; @warningBorder: darken(spin(@warningBackground, -10), 3%); @errorText: #b94a48; @errorBackground: #f2dede; @errorBorder: darken(spin(@errorBackground, -10), 3%); @successText: #468847; @successBackground: #dff0d8; @successBorder: darken(spin(@successBackground, -10), 5%); @infoText: #3a87ad; @infoBackground: #d9edf7; @infoBorder: darken(spin(@infoBackground, -10), 7%); // Tooltips and popovers // ------------------------- @tooltipColor: #fff; @tooltipBackground: #000; @tooltipArrowWidth: 5px; @tooltipArrowColor: @tooltipBackground; @popoverBackground: #fff; @popoverArrowWidth: 10px; @popoverArrowColor: #fff; @popoverTitleBackground: darken(@popoverBackground, 3%); // Special enhancement for popovers @popoverArrowOuterWidth: @popoverArrowWidth + 1; @popoverArrowOuterColor: rgba(0,0,0,.25); // GRID // -------------------------------------------------- // Default 940px grid // ------------------------- @gridColumns: 12; @gridColumnWidth: 60px; @gridGutterWidth: 20px; @gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); // 1200px min @gridColumnWidth1200: 70px; @gridGutterWidth1200: 30px; @gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1)); // 768px-979px @gridColumnWidth768: 42px; @gridGutterWidth768: 20px; @gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1)); // Fluid grid // ------------------------- @fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth); @fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth); // 1200px min @fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200); @fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200); // 768px-979px @fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768); @fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768); bootstrap.full.less 0000604 00000003732 15245611445 0010422 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes the full Bootstrap markup for Joomla! 2.5 templates which do not include Bootstrap CSS styling (default) */ /* * Bootstrap (minimal, for Protostar and other templates with included Bootstrap CSS styling) */ // Core variables and mixins @import "bootstrap/variables.less"; // Modify this for custom colors, font-sizes, etc @import "bootstrap/mixins.less"; // CSS Reset @import "bootstrap/reset.less"; // Grid system and page structure @import "bootstrap/scaffolding.less"; @import "bootstrap/grid.less"; @import "bootstrap/layouts.less"; // Base CSS @import "bootstrap/type.less"; @import "bootstrap/code.less"; @import "bootstrap/forms.less"; @import "bootstrap/tables.less"; // Components: common @import "bootstrap/sprites.less"; @import "bootstrap/dropdowns.less"; @import "bootstrap/wells.less"; @import "bootstrap/component-animations.less"; @import "bootstrap/close.less"; // Components: Buttons & Alerts @import "bootstrap/buttons.less"; @import "bootstrap/button-groups.less"; @import "bootstrap/alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less // Components: Nav @import "bootstrap/navs.less"; @import "bootstrap/navbar.less"; @import "bootstrap/breadcrumbs.less"; @import "bootstrap/pagination.less"; @import "bootstrap/pager.less"; // Components: Popovers // @import "bootstrap/modals.less"; @import "bootstrap/tooltip.less"; @import "bootstrap/popovers.less"; // Components: Misc @import "bootstrap/thumbnails.less"; @import "bootstrap/media.less"; @import "bootstrap/labels-badges.less"; @import "bootstrap/progress-bars.less"; @import "bootstrap/accordion.less"; @import "bootstrap/carousel.less"; @import "bootstrap/hero-unit.less"; // Utility classes @import "bootstrap/utilities.less"; // Has to be last to override when necessary @import "bootstrap/responsive.less"; bootstrap.minimal.j32.less 0000604 00000000731 15245611445 0011477 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes the minimal Bootstrap markup only for Joomla! 3.2 templates which include Bootstrap CSS styling */ // Core variables and mixins @import "bootstrap/variables.less"; // Modify this for custom colors, font-sizes, etc @import "bootstrap/mixins.less"; // Components: common @import "bootstrap/sprites.j32.less"; bootstrap.full.j32.less 0000604 00000003736 15245611445 0011023 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes the full Bootstrap markup for Joomla! 3.2 templates which do not include Bootstrap CSS styling (default) */ /* * Bootstrap (minimal, for Protostar and other templates with included Bootstrap CSS styling) */ // Core variables and mixins @import "bootstrap/variables.less"; // Modify this for custom colors, font-sizes, etc @import "bootstrap/mixins.less"; // CSS Reset @import "bootstrap/reset.less"; // Grid system and page structure @import "bootstrap/scaffolding.less"; @import "bootstrap/grid.less"; @import "bootstrap/layouts.less"; // Base CSS @import "bootstrap/type.less"; @import "bootstrap/code.less"; @import "bootstrap/forms.less"; @import "bootstrap/tables.less"; // Components: common @import "bootstrap/sprites.j32.less"; @import "bootstrap/dropdowns.less"; @import "bootstrap/wells.less"; @import "bootstrap/component-animations.less"; @import "bootstrap/close.less"; // Components: Buttons & Alerts @import "bootstrap/buttons.less"; @import "bootstrap/button-groups.less"; @import "bootstrap/alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less // Components: Nav @import "bootstrap/navs.less"; @import "bootstrap/navbar.less"; @import "bootstrap/breadcrumbs.less"; @import "bootstrap/pagination.less"; @import "bootstrap/pager.less"; // Components: Popovers // @import "bootstrap/modals.less"; @import "bootstrap/tooltip.less"; @import "bootstrap/popovers.less"; // Components: Misc @import "bootstrap/thumbnails.less"; @import "bootstrap/media.less"; @import "bootstrap/labels-badges.less"; @import "bootstrap/progress-bars.less"; @import "bootstrap/accordion.less"; @import "bootstrap/carousel.less"; @import "bootstrap/hero-unit.less"; // Utility classes @import "bootstrap/utilities.less"; // Has to be last to override when necessary @import "bootstrap/responsive.less"; bootstrap.j25.less 0000604 00000001102 15245611445 0010045 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes the default Bootstrap classes (minus the modal dialog) * and our Joomla! 2.5-specific style overrides */ /* * Bootstrap (namespaced) */ div.akeeba-bootstrap { @import "bootstrap.full.less"; } // Popovers must not be namespaced @import "bootstrap/variables"; @import "bootstrap/mixins"; @import "bootstrap/popovers"; /* * Akeeba Strapper overrides */ @import "strapper.less"; @import "strapper.j25.less"; bootstrap.minimal.j3.less 0000604 00000000734 15245611445 0011420 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes the minimal Bootstrap markup only for Joomla! 3.0/3.1 templates which include Bootstrap CSS styling */ // Core variables and mixins @import "bootstrap/variables.less"; // Modify this for custom colors, font-sizes, etc @import "bootstrap/mixins.less"; // Components: common @import "bootstrap/sprites.j3.less"; bootstrap.minimal.less 0000604 00000000725 15245611445 0011105 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes the minimal Bootstrap markup only for Joomla! 2.5 templates which include Bootstrap CSS styling */ // Core variables and mixins @import "bootstrap/variables.less"; // Modify this for custom colors, font-sizes, etc @import "bootstrap/mixins.less"; // Components: common @import "bootstrap/sprites.less"; bootstrap.full.j3.less 0000604 00000003741 15245611445 0010735 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes the full Bootstrap markup for Joomla! 3.0/3.1 templates which do not include Bootstrap CSS styling (default) */ /* * Bootstrap (minimal, for Protostar and other templates with included Bootstrap CSS styling) */ // Core variables and mixins @import "bootstrap/variables.less"; // Modify this for custom colors, font-sizes, etc @import "bootstrap/mixins.less"; // CSS Reset @import "bootstrap/reset.less"; // Grid system and page structure @import "bootstrap/scaffolding.less"; @import "bootstrap/grid.less"; @import "bootstrap/layouts.less"; // Base CSS @import "bootstrap/type.less"; @import "bootstrap/code.less"; @import "bootstrap/forms.less"; @import "bootstrap/tables.less"; // Components: common @import "bootstrap/sprites.j3.less"; @import "bootstrap/dropdowns.less"; @import "bootstrap/wells.less"; @import "bootstrap/component-animations.less"; @import "bootstrap/close.less"; // Components: Buttons & Alerts @import "bootstrap/buttons.less"; @import "bootstrap/button-groups.less"; @import "bootstrap/alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less // Components: Nav @import "bootstrap/navs.less"; @import "bootstrap/navbar.less"; @import "bootstrap/breadcrumbs.less"; @import "bootstrap/pagination.less"; @import "bootstrap/pager.less"; // Components: Popovers // @import "bootstrap/modals.less"; @import "bootstrap/tooltip.less"; @import "bootstrap/popovers.less"; // Components: Misc @import "bootstrap/thumbnails.less"; @import "bootstrap/media.less"; @import "bootstrap/labels-badges.less"; @import "bootstrap/progress-bars.less"; @import "bootstrap/accordion.less"; @import "bootstrap/carousel.less"; @import "bootstrap/hero-unit.less"; // Utility classes @import "bootstrap/utilities.less"; // Has to be last to override when necessary @import "bootstrap/responsive.less"; bootstrap.j3.less 0000604 00000001516 15245611445 0007772 0 ustar 00 /** * Akeeba Strapper * A handy distribution of namespaced jQuery, jQuery UI and Twitter * Bootstrapper for use with Akeeba components. * * This file includes only Joomla! 3.0/3.1-specific style overrides */ /* * Bootstrap (namespaced) */ div.akeeba-bootstrap { /** * If your template already includes Bootstrap CSS styling please comment * out this line and uncomment the include below. */ // @import "bootstrap.full.j3.less"; /** * If your template already includes Bootstrap CSS styling please uncomment * out this line and comment out the include above. */ @import "bootstrap.minimal.j3.less"; } // Popovers must not be namespaced @import "bootstrap/variables"; @import "bootstrap/mixins"; @import "bootstrap/popovers"; /* * Akeeba Strapper overrides */ @import "strapper.less"; @import "strapper.j3.less"; t3-responsive.less 0000604 00000003770 15245611525 0010166 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: https://github.com/t3framework/ *------------------------------------------------------------------------------ */ // // NAVIGATION RESPONSIVE // --------------------------------------------------------- @media (max-width: @navbarCollapseWidth) { // Always show submenu for navigation .always-show .mega > .mega-dropdown-menu, .always-show .dropdown-menu { display: block !important; } // ------------------------------------------------------ // Support fixed navbar when collapsed // ------------------------------------------------------- .navbar-collapse-fixed-top, .navbar-collapse-fixed-bottom { border-top: none; position: fixed; left: 0; top: 0; width: 100%; z-index: 1000; // style for normal collapsed menu .nav-collapse { position: absolute; width: 100%; left: 0; top: @navbarHeight + 1; margin: 0; &.in { overflow-y: auto; -webkit-overflow-scrolling: touch; > * { -webkit-transform: translateZ(0); } } } .nav-collapse.animate { overflow: hidden; } } .navbar-collapse-fixed-bottom { bottom: 0; top: auto; .nav-collapse { bottom: @navbarHeight + 1; top: auto; } .btn-navbar { position: absolute; bottom: 0; } } .logo-control { .logo-img-sm { display: block; } .logo-img { display: none; } } } grid-ext-responsive.less 0000604 00000005703 15245611525 0011361 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Wide display // ---------------------------------- @media (min-width: 980px) and (max-width: 1199px) { // Fixed grid #grid > .core(@gridColumnWidth980, @gridGutterWidth980); // Fluid grid #grid > .fluid(@fluidGridColumnWidth980, @fluidGridGutterWidth980); // Input grid #grid > .input(@gridColumnWidth980, @gridGutterWidth980); // No need to reset .thumbnails here since it's the same @gridGutterWidth } // Extend for grid left offset, fluid // PORTRAIT TABLET TO DEFAULT DESKTOP // ---------------------------------- // Offset @media (min-width: 768px) and (max-width: 979px) { // Fixed grid #grid-extend > .offset(@gridColumnWidth768, @gridGutterWidth768); } @media (min-width: 980px) and (max-width: 1199px) { // Fixed grid #grid-extend > .offset(@gridColumnWidth980, @gridGutterWidth980); } @media (min-width: 1200px) { // Fixed grid #grid-extend > .offset(@gridColumnWidth1200, @gridGutterWidth1200); } // Fluid for small display @media (min-width: 600px) and (max-width: 767px) { // Fluid grid #grid-extend > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); // Remove left spacing .spanfirst { margin-left: 0 !important; clear: left; } } // Width by percentage //--------------------- // 2 cols .row, .row-fluid { .span50 {width: 50%; float: left;} // 3 cols .span33 {width: 33.3333%; float: left;} // 4 cols .span25 {width: 25%; float: left;} // 5 cols .span20 {width: 20%; float: left;} // 6 cols .span16 {width: 16.6666%; float: left;} } // Visibility utilities // For desktops .hidden-default { display: none !important; } // Wide screen @media (min-width: 1200px) { // Hide everything else .hidden-wide { display: none !important; } } // Normal desktops only @media (min-width: 980px) and (max-width: 1199px) { // Hide everything else .hidden-normal { display: none !important; } } // XTablet only @media (min-width: 768px) and (max-width: 979px) { // Hide everything else .hidden-xtablet { display: none !important; } } // Tablet only @media (min-width: 600px) and (max-width: 767px) { // Hide everything else .hidden-tablet { display: none !important; } } // Phones only @media (max-width: 599px) { // Hide everything else .hidden-mobile { display: none !important; } } rtl/megamenu.less 0000604 00000003054 15245611525 0010037 0 ustar 00 // MEGAMENU RTL override // -------------------------------------------------------------- // html[dir="rtl"] { .t3-megamenu { // Menu alignment // -------------- .mega-align-center > .dropdown-menu { .translate(50%, 0); } .mega-nav .dropdown-submenu > a:after { direction: ltr; } &.animate.zoom { .mega > .mega-dropdown-menu { .transform-origin(80% 20%); } //special case for level 0 .level0 > .mega-align-center { > .mega-dropdown-menu { -webkit-transform: scale(0, 0) translate(50%, 0); -ms-transform: scale(0, 0) translate(50%, 0); transform: scale(0, 0) translate(50%, 0); .transform-origin(100% 20%); } &.open > .mega-dropdown-menu { -webkit-transform: scale(1, 1) translate(50%, 0); -ms-transform: scale(1, 1) translate(50%, 0); transform: scale(1, 1) translate(50%, 0); } } } &.animate.elastic { .level0 { > .mega-align-center { > .mega-dropdown-menu { transform: scale(1,0) translate(50%, 0); -webkit-transform: scale(1,0) translate(50%, 0); -ms-transform: scale(1,0) translate(50%, 0); } &.open > .mega-dropdown-menu { transform: scale(1,1) translate(50%, 0); -webkit-transform: scale(1,1) translate(50%, 0); -ms-transform: scale(1,1) translate(50%, 0); } } } } } } rtl/off-canvas.less 0000604 00000002701 15245611525 0010262 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ @media (max-width: @grid-float-breakpoint-max) { .off-canvas { body > * { left: 0; -webkit-transform: translateX(0%); -ms-transform: translateX(0%); transform: translateX(0%); } #off-canvas-nav { .t3-mainnav { -webkit-transform: translateX(100%); -ms-transform: translateX(100%); transform: translateX(100%); } } } .off-canvas-enabled { body > *{ -webkit-transform: translateX(-@t3-off-canvas-width); -ms-transform: translateX(-@t3-off-canvas-width); transform: translateX(-@t3-off-canvas-width); } } } .off-canvas-left.t3-off-canvas { left: 0; right: auto; } .off-canvas-left.old-ie { .t3-off-canvas { left: -@t3-off-canvas-width; right: auto; } } layout-preview.less 0000604 00000033674 15245611525 0010447 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // VARIABLES & MIXINS // ------------------ // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/variables.less"; // Bootstrap mixins @import "../bootstrap/less/mixins.less"; // T3 variables @import "variables.less"; // T3 mixins @import "mixins.less"; // Layout preview variables @import "layout-preview-variables.less"; // T3 CUSTOM LAYOUT // ------------------ .t3-admin-layout-preview { *, *:before, *:after { .box-sizing(border-box); } // // Grid system - By bootstrap // -------------------------------------------------- width: 600px; max-width: 100%; // // Grid system - Extended by T3 // -------------------------------------------------- // Added "wrap" element .wrap { width: auto; clear: both; } .container { width: 100%; } // T3 Note: ensure those elements work good with floating elements .t3-admin-layout-section, header, footer, section, nav, .t3-spotlight, .t3-content, .t3-sidebar, .t3-mastcol { .clearfix(); } .row { .make-row(); } // Common styles for small and large grid columns .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .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-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-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 { position: relative; // Prevent columns from collapsing when empty min-height: 1px; // Inner gutter via padding padding-left: (@grid-gutter-width / 2); padding-right: (@grid-gutter-width / 2); float: left; } // Extra small grid // // Grid classes for extra small devices like smartphones. No offset, push, or // pull classes are present here due to the size of the target. // // Note that `.col-xs-12` doesn't get floated on purpose—there's no need since // it's full-width. &.xs { width: 450px; } .col-xs-1 { width: percentage((1 / @grid-columns)); } .col-xs-2 { width: percentage((2 / @grid-columns)); } .col-xs-3 { width: percentage((3 / @grid-columns)); } .col-xs-4 { width: percentage((4 / @grid-columns)); } .col-xs-5 { width: percentage((5 / @grid-columns)); } .col-xs-6 { width: percentage((6 / @grid-columns)); } .col-xs-7 { width: percentage((7 / @grid-columns)); } .col-xs-8 { width: percentage((8 / @grid-columns)); } .col-xs-9 { width: percentage((9 / @grid-columns)); } .col-xs-10 { width: percentage((10/ @grid-columns)); } .col-xs-11 { width: percentage((11/ @grid-columns)); } .col-xs-12 { width: 100%; } // Small grid // // Columns, offsets, pushes, and pulls for the small device range, from phones // to tablets. // // Note that `.col-sm-12` doesn't get floated on purpose—there's no need since // it's full-width. &.sm, &.xs, &.md { .t3-sidebar { min-height: 0 !important; } } &.sm, &.md, &.lg{ width: 500px; .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 { float: left; } .col-sm-1 { width: percentage((1 / @grid-columns)); } .col-sm-2 { width: percentage((2 / @grid-columns)); } .col-sm-3 { width: percentage((3 / @grid-columns)); } .col-sm-4 { width: percentage((4 / @grid-columns)); } .col-sm-5 { width: percentage((5 / @grid-columns)); } .col-sm-6 { width: percentage((6 / @grid-columns)); } .col-sm-7 { width: percentage((7 / @grid-columns)); } .col-sm-8 { width: percentage((8 / @grid-columns)); } .col-sm-9 { width: percentage((9 / @grid-columns)); } .col-sm-10 { width: percentage((10/ @grid-columns)); } .col-sm-11 { width: percentage((11/ @grid-columns)); } .col-sm-12 { width: 100%; } // Push and pull columns for source order changes .col-sm-push-1 { left: percentage((1 / @grid-columns)); } .col-sm-push-2 { left: percentage((2 / @grid-columns)); } .col-sm-push-3 { left: percentage((3 / @grid-columns)); } .col-sm-push-4 { left: percentage((4 / @grid-columns)); } .col-sm-push-5 { left: percentage((5 / @grid-columns)); } .col-sm-push-6 { left: percentage((6 / @grid-columns)); } .col-sm-push-7 { left: percentage((7 / @grid-columns)); } .col-sm-push-8 { left: percentage((8 / @grid-columns)); } .col-sm-push-9 { left: percentage((9 / @grid-columns)); } .col-sm-push-10 { left: percentage((10/ @grid-columns)); } .col-sm-push-11 { left: percentage((11/ @grid-columns)); } .col-sm-pull-1 { right: percentage((1 / @grid-columns)); } .col-sm-pull-2 { right: percentage((2 / @grid-columns)); } .col-sm-pull-3 { right: percentage((3 / @grid-columns)); } .col-sm-pull-4 { right: percentage((4 / @grid-columns)); } .col-sm-pull-5 { right: percentage((5 / @grid-columns)); } .col-sm-pull-6 { right: percentage((6 / @grid-columns)); } .col-sm-pull-7 { right: percentage((7 / @grid-columns)); } .col-sm-pull-8 { right: percentage((8 / @grid-columns)); } .col-sm-pull-9 { right: percentage((9 / @grid-columns)); } .col-sm-pull-10 { right: percentage((10/ @grid-columns)); } .col-sm-pull-11 { right: percentage((11/ @grid-columns)); } // Offsets .col-sm-offset-1 { margin-left: percentage((1 / @grid-columns)); } .col-sm-offset-2 { margin-left: percentage((2 / @grid-columns)); } .col-sm-offset-3 { margin-left: percentage((3 / @grid-columns)); } .col-sm-offset-4 { margin-left: percentage((4 / @grid-columns)); } .col-sm-offset-5 { margin-left: percentage((5 / @grid-columns)); } .col-sm-offset-6 { margin-left: percentage((6 / @grid-columns)); } .col-sm-offset-7 { margin-left: percentage((7 / @grid-columns)); } .col-sm-offset-8 { margin-left: percentage((8 / @grid-columns)); } .col-sm-offset-9 { margin-left: percentage((9 / @grid-columns)); } .col-sm-offset-10 { margin-left: percentage((10/ @grid-columns)); } .col-sm-offset-11 { margin-left: percentage((11/ @grid-columns)); } } // Medium grid // // Columns, offsets, pushes, and pulls for the desktop device range. // // Note that `.col-md-12` doesn't get floated on purpose—there's no need since // it's full-width. &.md, &.lg{ width: 600px; .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 { float: left; } .col-md-1 { width: percentage((1 / @grid-columns)); } .col-md-2 { width: percentage((2 / @grid-columns)); } .col-md-3 { width: percentage((3 / @grid-columns)); } .col-md-4 { width: percentage((4 / @grid-columns)); } .col-md-5 { width: percentage((5 / @grid-columns)); } .col-md-6 { width: percentage((6 / @grid-columns)); } .col-md-7 { width: percentage((7 / @grid-columns)); } .col-md-8 { width: percentage((8 / @grid-columns)); } .col-md-9 { width: percentage((9 / @grid-columns)); } .col-md-10 { width: percentage((10/ @grid-columns)); } .col-md-11 { width: percentage((11/ @grid-columns)); } .col-md-12 { width: 100%; } // Push and pull columns for source order changes .col-md-push-0 { left: auto; } .col-md-push-1 { left: percentage((1 / @grid-columns)); } .col-md-push-2 { left: percentage((2 / @grid-columns)); } .col-md-push-3 { left: percentage((3 / @grid-columns)); } .col-md-push-4 { left: percentage((4 / @grid-columns)); } .col-md-push-5 { left: percentage((5 / @grid-columns)); } .col-md-push-6 { left: percentage((6 / @grid-columns)); } .col-md-push-7 { left: percentage((7 / @grid-columns)); } .col-md-push-8 { left: percentage((8 / @grid-columns)); } .col-md-push-9 { left: percentage((9 / @grid-columns)); } .col-md-push-10 { left: percentage((10/ @grid-columns)); } .col-md-push-11 { left: percentage((11/ @grid-columns)); } .col-md-pull-0 { right: auto; } .col-md-pull-1 { right: percentage((1 / @grid-columns)); } .col-md-pull-2 { right: percentage((2 / @grid-columns)); } .col-md-pull-3 { right: percentage((3 / @grid-columns)); } .col-md-pull-4 { right: percentage((4 / @grid-columns)); } .col-md-pull-5 { right: percentage((5 / @grid-columns)); } .col-md-pull-6 { right: percentage((6 / @grid-columns)); } .col-md-pull-7 { right: percentage((7 / @grid-columns)); } .col-md-pull-8 { right: percentage((8 / @grid-columns)); } .col-md-pull-9 { right: percentage((9 / @grid-columns)); } .col-md-pull-10 { right: percentage((10/ @grid-columns)); } .col-md-pull-11 { right: percentage((11/ @grid-columns)); } // Offsets .col-md-offset-0 { margin-left: 0; } .col-md-offset-1 { margin-left: percentage((1 / @grid-columns)); } .col-md-offset-2 { margin-left: percentage((2 / @grid-columns)); } .col-md-offset-3 { margin-left: percentage((3 / @grid-columns)); } .col-md-offset-4 { margin-left: percentage((4 / @grid-columns)); } .col-md-offset-5 { margin-left: percentage((5 / @grid-columns)); } .col-md-offset-6 { margin-left: percentage((6 / @grid-columns)); } .col-md-offset-7 { margin-left: percentage((7 / @grid-columns)); } .col-md-offset-8 { margin-left: percentage((8 / @grid-columns)); } .col-md-offset-9 { margin-left: percentage((9 / @grid-columns)); } .col-md-offset-10 { margin-left: percentage((10/ @grid-columns)); } .col-md-offset-11 { margin-left: percentage((11/ @grid-columns)); } } // Large grid // // Columns, offsets, pushes, and pulls for the large desktop device range. // // Note that `.col-lg-12` doesn't get floated on purpose—there's no need since // it's full-width. &.lg { width: 720px; .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 { float: left; } .col-lg-1 { width: percentage((1 / @grid-columns)); } .col-lg-2 { width: percentage((2 / @grid-columns)); } .col-lg-3 { width: percentage((3 / @grid-columns)); } .col-lg-4 { width: percentage((4 / @grid-columns)); } .col-lg-5 { width: percentage((5 / @grid-columns)); } .col-lg-6 { width: percentage((6 / @grid-columns)); } .col-lg-7 { width: percentage((7 / @grid-columns)); } .col-lg-8 { width: percentage((8 / @grid-columns)); } .col-lg-9 { width: percentage((9 / @grid-columns)); } .col-lg-10 { width: percentage((10/ @grid-columns)); } .col-lg-11 { width: percentage((11/ @grid-columns)); } .col-lg-12 { width: 100%; } // Push and pull columns for source order changes .col-lg-push-0 { left: auto; } .col-lg-push-1 { left: percentage((1 / @grid-columns)); } .col-lg-push-2 { left: percentage((2 / @grid-columns)); } .col-lg-push-3 { left: percentage((3 / @grid-columns)); } .col-lg-push-4 { left: percentage((4 / @grid-columns)); } .col-lg-push-5 { left: percentage((5 / @grid-columns)); } .col-lg-push-6 { left: percentage((6 / @grid-columns)); } .col-lg-push-7 { left: percentage((7 / @grid-columns)); } .col-lg-push-8 { left: percentage((8 / @grid-columns)); } .col-lg-push-9 { left: percentage((9 / @grid-columns)); } .col-lg-push-10 { left: percentage((10/ @grid-columns)); } .col-lg-push-11 { left: percentage((11/ @grid-columns)); } .col-lg-pull-0 { right: auto; } .col-lg-pull-1 { right: percentage((1 / @grid-columns)); } .col-lg-pull-2 { right: percentage((2 / @grid-columns)); } .col-lg-pull-3 { right: percentage((3 / @grid-columns)); } .col-lg-pull-4 { right: percentage((4 / @grid-columns)); } .col-lg-pull-5 { right: percentage((5 / @grid-columns)); } .col-lg-pull-6 { right: percentage((6 / @grid-columns)); } .col-lg-pull-7 { right: percentage((7 / @grid-columns)); } .col-lg-pull-8 { right: percentage((8 / @grid-columns)); } .col-lg-pull-9 { right: percentage((9 / @grid-columns)); } .col-lg-pull-10 { right: percentage((10/ @grid-columns)); } .col-lg-pull-11 { right: percentage((11/ @grid-columns)); } // Offsets .col-lg-offset-0 { margin-left: 0; } .col-lg-offset-1 { margin-left: percentage((1 / @grid-columns)); } .col-lg-offset-2 { margin-left: percentage((2 / @grid-columns)); } .col-lg-offset-3 { margin-left: percentage((3 / @grid-columns)); } .col-lg-offset-4 { margin-left: percentage((4 / @grid-columns)); } .col-lg-offset-5 { margin-left: percentage((5 / @grid-columns)); } .col-lg-offset-6 { margin-left: percentage((6 / @grid-columns)); } .col-lg-offset-7 { margin-left: percentage((7 / @grid-columns)); } .col-lg-offset-8 { margin-left: percentage((8 / @grid-columns)); } .col-lg-offset-9 { margin-left: percentage((9 / @grid-columns)); } .col-lg-offset-10 { margin-left: percentage((10/ @grid-columns)); } .col-lg-offset-11 { margin-left: percentage((11/ @grid-columns)); } } //Misc .navbar-collapse.collapse { height: auto !important; overflow: visible !important; } } grid-ext.less 0000604 00000001645 15245611525 0007167 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Added "wrap" element .wrap { width: auto; clear: both; } // Fixed grid #grid-extend > .offset(@gridColumnWidth, @gridGutterWidth); // make to be first col - custom by JOOM .row-fluid .spanfirst { margin-left: 0 !important; } global-typo.less 0000604 00000012142 15245611525 0007667 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // --------------------------------------------------------- // BANNERS // --------------------------------------------------------- // // Jumbotrons // --------------------------------------------------------- .jumbotron { position: relative; padding: (@T3globalPadding * 2) 0; } .jumbotron h1 { font-size: @baseFontSize * 4; letter-spacing: -1px; line-height: 1; margin: 0 0 (@T3globalMargin / 2) 0; } .jumbotron p { font-size: @baseFontSize * 1.5; line-height: 1.275; margin: 0 0 @T3globalMargin 0; } .jumbotron .btn { margin-top: @T3globalMargin / 2; } .jumbotron .btn-large { margin-top: @T3globalMargin; font-size: @baseFontSize + 4px; } // Masthead // -------- .masthead { padding: (@T3globalPadding * 4) 0 (@T3globalPadding * 3); text-align: center; } .masthead h1 { font-size: @baseFontSize * 7; } .masthead p { font-size: @baseFontSize * 3; } .masthead .btn-large { font-size: @baseFontSize * 2; padding: @baseFontSize (@baseFontSize * 2); } /* Jumbotrons with images ---*/ .jumbotron.has-image { .box-sizing (border-box); } .masthead.has-image { text-align: left; } // --------------------------------------------------------- // THUMBNAILS // --------------------------------------------------------- // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files // Make wrapper ul behave like the grid .thumbnails { margin-bottom: @T3globalMargin; margin-left: -@gridGutterWidth; list-style: none; .clearfix(); } // Fluid rows have no left margin .row-fluid .thumbnails { margin-left: 0; } // Float li to make thumbnails appear in a row .thumbnails > li { float: left; // Explicity set the float since we don't require .span* classes position: relative; margin-bottom: @T3globalMargin; margin-left: @gridGutterWidth; } // The actual thumbnail (can be `a` or `div`) .thumbnail { border: 1px solid @T3borderColor; display: block; padding: 4px; line-height: @baseLineHeight; .border-radius(@inputBorderRadius); .box-shadow(0 1px 3px rgba(0,0,0,.055)); .transition(all .2s ease-in-out); } // Add a hover state for linked versions only a.thumbnail:hover { border-color: @linkColor; .box-shadow(0 1px 4px rgba(0,105,214,.25)); } // Images and captions .thumbnail > img { display: block; max-width: 100%; margin-left: auto; margin-right: auto; } .thumbnail .caption { padding: 9px; color: @gray; } // Thumbnail Styles // ------------------ // Paper Style .thumbnails.paper > li:before, .thumbnails.paper > li:after { content: ''; position: absolute; z-index: -2; bottom: 15px; left: 10px; width: 50%; height: 20%; box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7); -webkit-transform: rotate(-3deg); -moz-transform: rotate(-3deg); -ms-transform: rotate(-3deg); -o-transform: rotate(-3deg); transform: rotate(-3deg); } .thumbnails.paper > li:after { right: 10px; left: auto; -webkit-transform: rotate(3deg); -moz-transform: rotate(3deg); -ms-transform: rotate(3deg); -o-transform: rotate(3deg); transform: rotate(3deg); } .thumbnails.paper .thumbnail { border: none; padding: 0; .box-shadow(none); } .thumbnails.paper a.thumbnail.paper:hover { .box-shadow(none); } // --------------------------------------------------------- // T3 Logo // --------------------------------------------------------- .t3-logo, .t3-logo-small { display: block; text-decoration: none; text-indent: -9999em; text-align: left; background-repeat: no-repeat; background-position: center; } // Sizes .t3-logo { width: 182px; height: 50px; } .t3-logo-small { width: 60px; height: 30px; } // Styles .t3-logo, .t3-logo-color { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-big-color.png"); } .t3-logo-small, .t3-logo-small.t3-logo-color { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-small-color.png"); } .t3-logo-dark { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-big-dark.png"); } .t3-logo-small.t3-logo-dark { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-small-dark.png"); } .t3-logo-light { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-big-light.png"); } .t3-logo-small.t3-logo-light { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-small-light.png"); } frontend-edit.less 0000604 00000041230 15245611525 0010200 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/variables.less"; // Bootstrap mixins @import "../bootstrap/less/mixins.less"; // T3 Base variables @import "variables.less"; // T3 Base mixins @import "mixins.less"; // TEMPLATES OPTIONS FORM // ------------------------------ .com_config, .com_content.layout-edit .edit.item-page, .layout-modal .contentpane { // Form elements // ------------- .btn { border-radius: 5px; padding: 8px 16px; } input[type="text"], input[type="email"], input[type="number"], input[type="password"] { box-shadow: none; border-radius: 5px; padding: 0 12px; height: 40px; line-height: 40px; &:focus { border-color: #ccc; } } textarea { border: 1px solid #ddd; border-radius: 5px; box-shadow: none; &:focus { box-shadow: none; border: 1px solid #ccc; } } select { border-radius: 5px; height: auto; padding: 8px; } .field-calendar { } .input-group { .btn { padding-top: 0; padding-bottom: 0; } } } // TEMPLATES OPTIONS FORM // ------------------------------ .com_config #templates-form { .tip { background: @well-bg; padding: (@padding-base-vertical * 2) @padding-base-horizontal; } textarea { height: auto; width: auto; min-height: 100px; min-width: 50%; } .input-append, .input-prepend { .add-on { width: 35px; } input { display: inline-block; } .btn { border: 1px solid @btn-default-border; } } // Hiding useless elements .t3-admin-form-legend { display: none; } // Expand the grid .row-fluid .span6 { width: 100%; } @media (min-width: 768px) { .control-group .control-label { width: 250px; } .control-group .controls { margin-left: 280px; } } } // // MODULES OPTIONS FORM // --------------------------------------------------------- .com_config.view-modules { #options { .accordion-item { background-color: rgba(255,255,255,1); border: 1px solid #ddd; border-radius: 5px; margin-bottom: 8px; } .accordion-header { font-size: 18px; margin: 0; padding: 16px; line-height: 1; .accordion-button { background: transparent; border: 0; padding: 0; text-align: left; width: 100%; } } .accordion-body { border-top: 1px solid #ddd; padding: 24px; .nav-tabs { background: transparent; } } } } .com_config #modules-form { .input-append, .input-prepend { .add-on { width: 35px; } input { display: inline-block; } .btn { border: 1px solid @btn-default-border; } } // Accordion group // --------------- .accordion-group { margin-bottom: 20px; .accordion-heading { .accordion-toggle { border: 1px solid #ddd; border-radius: 5px 5px 0 0; color: #428bca; display: block; padding: 10px; outline: none; &.collapsed { border-radius: 5px; color: #666; } } } .accordion-body { border: 1px solid #ddd; border-top: 0; border-radius: 0 0 5px 5px; padding-top: 20px; .nav-tabs { border-bottom: 0; } } } // Fix for K2 module // ----------------- .radio input[type="radio"] { margin-left: 0; position: relative; } .radio label { padding-left: 5px; padding-right: 20px; } } .controls select { vertical-align: middle; width: 220px; } // // EDIT & SUBMIT ARTICLE FORM // --------------------------------------------------------- .edit { fieldset { } fieldset legend { } label { } .inputbox, input[type="text"], select.inputbox, select { @media (min-width: @screen-sm) { width: 250px; } } textarea { width: 100%; } .input-append, .input-prepend { display: block; width: auto; @media (min-width: @screen-sm) { input[type="text"], input.inputbox { display: inline-block; width: 210px; } } .btn { border: 1px solid @btn-default-border; background-color: @btn-default-bg; } } } // Extrafield // ----------------------- .edit.item-page, .profile-edit { #jform_com_fields_checkboxs { label.checkbox { display: inline-block; margin-right: 10px; } input[type="checkbox"] { margin-left: 0; margin-top: -2px; position: relative; vertical-align: middle; width: auto; } } .minicolors-input { height: 28px; width: auto; } .chzn-container { .chzn-search { .clearfix(); } } } // Edit profile // ----------------------- .profile-edit { #jform_com_fields_user_checkbox { label.checkbox { display: inline-block; margin-right: 10px; } input { position: relative; margin-left: 0; margin-right: 5px; width: auto; } } .minicolors-input { height: 28px; width: auto; } #jform_com_fields_user_image_chzn { .chzn-search { box-sizing: border-box; } ul.chzn-results { box-sizing: border-box; padding: 0; margin: 0; width: 100%; } } #jform_com_fields_user_calendar { float: left; } .chzn-container-single, .chzn-container { float: left; margin-right: 10px; @media screen and (max-width: 360px) { width: 100% !important; } .chzn-drop { box-sizing: border-box !important; } } } .j40, .j50 { .profile-edit { .t3onoff { min-height: auto; border: 0; height: auto; width: auto; .radio { display: flex; align-items: center; min-height: auto; padding: 0; .form-check { display: flex; align-items: center; input[type="radio"] { display: inline-block; } } } label { padding: 0; margin: 0; position: relative; top: auto; left: auto; height: auto; text-indent: 0; text-transform: none; width: auto; &.active { background: transparent; } &::before, &::after { display: none; } } } } } // User profile // ---------------------- .profile { #users-profile-core { width: 100%; } .dl-horizontal { dd { margin-bottom: 10px; border-bottom: 1px dashed #ddd; padding-bottom: 10px; img { max-width: 100%; } } } } // Tabs // ----------------------- .edit { .nav-tabs { margin-bottom: @t3-global-margin; } .tab-pane { .clearfix(); } } // Editor Buttons // ---------------------- #editor-xtd-buttons, .toggle-editor { margin-top: @line-height-computed; margin-bottom: @line-height-computed; .btn { background-color: @btn-default-bg; text-shadow: 0 1px 0 #fff; border-color: @btn-default-border; } } #editor-xtd-buttons { margin-right: @grid-gutter-width; } // // FRONTEDIT ELEMENTS // --------------------------------------------------------- // Window Wrapper // --------------------------------------- #sbox-window { padding: 0; .box-sizing(content-box); // Reset Box-Sizing model // With shadow &.shadow { } // Content #sbox-content { } .sbox-content-iframe { } } // Close Button #sbox-btn-close { } // Overlay Layer #sbox-overlay { } // Frontend Edit Button // --------------------------------------- .btn.jmodedit { padding: 0; &:focus, &:active { box-shadow: none; } } .jfedit-menu + .tooltip { min-width: 100px; } // Frontend Edit Elements // --------------------------------------- .window { // Form Table // ---------- form table { border: 1px solid @table-border-color; background: @table-bg-accent; margin-bottom: @line-height-computed; td { padding: @table-cell-padding; } } // Form Help Block // --------------- form .help-block { font-size: @font-size-small; clear: both; padding-top: 5px; } &.view-modules { .well { .control-label { display: inline-block; } .controls { display: inline-block; vertical-align: middle; margin-left: 10px; } } .control-group:after { content: ""; clear: both; display: table; } #filter-bar { margin-bottom: 10px; .btn-group button { margin-top: 0; } } } } .com_config.view-modules .btn-group { label { float: left; padding-left: 10px !important; padding-right: 10px !important; } } // Media Manager // ------------- .window { // Main Form #imageForm { margin: 0; width: auto; .chzn-container { float: left; } #upbutton { border: 1px solid @btn-default-border; float: left; padding: 3px 12px; margin-left: 5px; } .pull-right { margin-right: @grid-gutter-width; } .well { &:after { display: table; content: ""; clear: both; } } } // Upload Form #uploadForm { width: auto; #upload-file { margin: 10px 0; } } // Images Choser Iframe #imageframe { } .manager { margin: 0; padding: 0; .clearfix(); .thumbnail { float: left; margin-right: 10px; margin-left: 10px; } } // End } // Insert Article // -------------- .window.view-articles { .filter { overflow: visible; .btn-toolbar { .icon-remove, .icon-search { margin-right: 5px; } } } .filters { float: none !important; .chzn-container { display: inline-block; } .chzn-drop input { float: none; } } } // // Special Radio Styles for T3 // ------------------------------ .t3onoff { border: 1px solid #aaa; border-radius: 0; display: block; height: 30px; overflow: hidden; padding: 0; position: relative; white-space: nowrap; width: 90px; input[type=radio] { display: none; } label { width: 90px; height: 30px; overflow: hidden; display: block; border-radius: 0; position: absolute; top: -1px; left: -1px; z-index: 1; text-transform: uppercase; background: url(../imgs/blank.gif) no-repeat transparent; text-indent: -999em; } /* use before as background */ label:before, label:after { display: block; position: absolute; top: 0; border-radius: 0; .transition(all 250ms); } label:before { content: "ON"; width: 100%; height: 100%; text-indent: 0; color: white; padding: 4px 18px; font-weight: normal; } /* use after as switch */ label:after { content: ""; width: 40%; height: 100%; background: #fff; } label.off:before { content: "OFF"; text-align: right; color: #555; } /* active label should be under => so inactive can be clickable */ label.active { z-index: 0; } /* off background */ label.off:before { background: #eee; left: 100%; } label.off.active:before { left: 0%; } label.on:before { background: #690; left: -100%; } label.on.active:before { left: -0%; } /* off switch */ label.off:after { left: 60%; } label.off.active:after { left: 0%; } label.on:after { left: 0%; } label.on.active:after { left: 60%; } } /* radio btn group */ fieldset.radio.btn-group { padding: 0; input { display: none; } label { display: inline-block; min-width: 54px; padding: 0 12px; border: 1px solid #aaa; line-height: 28px; background: #eee; color: #555; border-radius: 0; text-align: center; border-right-width: 0px; text-transform: uppercase; &:last-child { border-right-width: 1px; } &.active { background: #690; border-color: #5c8b00; color: #fff; } } } // Frontend Edit Insert module // --------------------------------------- .window.view-modules, .window.view-articles, .window.view-contacts, .window.view-fields, .window.view-items { .js-stools { margin-bottom: 20px; .btn { border: 1px solid #ccc; margin-top: 0; } .input-append .btn { border-left: 0; } input { display: inline-block; } } .js-stools-container-filters { .chzn-container-single { width: 220px !important; } .chzn-drop { box-sizing: border-box !important; } } table#moduleList { td .label { background-color: #999; box-sizing: border-box; border-radius: 3px; display: inline-block; font-weight: normal; font-size: 100%; padding: 10px; width: 100%; } } table#moduleList td:nth-child(1) { vertical-align: middle; } .icon-publish { &:before { content: "\f00c"; font-size: 16px; } } } // // LEGACY // ----------------------------------------------------------- // Fix for missing icons // because of the change from Font Awesome 3 to Font Awesome 4 // ----------------------------------------------------------- .icon-eye-open:before, .icon-eye:before { content:"\f06e"; font-family: "FontAwesome"; } .icon-file-add:before { content:"\f0f6"; font-family: "FontAwesome"; } .icon-cancel:before { content:"\f00d"; font-family: "FontAwesome"; } .icon-publish { &:before { content: "\f00c"; } } .icon-unpublish { &:before { content: "\f00d"; } } .icon-featured { &:before { content: "\f005"; } } .icon-unfeatured { &:before { content: "\f005"; } } // Legacy class for Joomla 2.5 // --------------------------- .button2-left, .button2-left div { float: left; } .button2-right, .button2-right div { float: right; } .button2-left { margin: 5px 5px 0 0; } .button2-right { margin: 5px 0 0 5px; } .button2-left a, .button2-right a, .button2-left span, .button2-right span { background: @gray-lighter; border: 1px solid darken(@gray-lighter, 5%); color: @gray-light; cursor: pointer; display: block; float: left; padding: 2px 10px; border-radius: @border-radius-base; } .button2-left span, .button2-right span { color: @gray-light; cursor: default; } .button2-left .page a, .button2-right .page a, .button2-left .page span, .button2-right .page span { padding: 0 6px; } .button2-left a:hover, .button2-right a:hover { background: darken(@gray-lighter, 5%); color: @gray-dark; text-decoration: none; } .edit.item-page a.modal, .com_config form a.modal { display: inline-block; position: inherit; width: auto !important; top: auto !important; overflow: hidden; &.btn { background: @btn-default-bg; text-shadow: 0 1px 0 #fff; border-color: @btn-default-border; overflow: hidden; } } // Calendar Button .controls img.calendar { cursor: pointer; margin-left: 5px; } // Break page layout // ----------------- .layout-pagebreak { .form-horizontal .control-group .controls { margin-left: 0; } } // View history // ------------ [class^="icon-"], [class*=" icon-"] { font-family: FontAwesome3 !important; } .view-history .btn-group { margin-bottom: 10px; } .btn [class^="icon-"], .btn [class*=" icon-"] { margin-right: 5px; } .btn span.icon-delete { &:before { content: "\f057"; display: inline-block; height: 16px; width: 16px; color: #333; } } // Fix modal in joomla 3.9 body.modal-open { .modal.hide { background-color: #fff; display: block !important; left: auto; right: auto; top: 0; bottom: auto; transform: translateY(50%); z-index: 1050; .iframe { border: 1px solid #ddd; } } } // Media Folder List .thumbnails-media .imgFolder span { line-height: 70px; } // JOOMLA 4 COMPATIBLE // -------------------------------- .j4 joomla-tab { margin-bottom: @t3-global-margin; } .j40 joomla-tab-element { margin-bottom: @t3-global-margin; } ul.chosen-results { clear: both; } non-responsive.less 0000604 00000003105 15245611525 0010422 0 ustar 00 /* Non-responsive overrides * * Utilitze the following CSS to disable the responsive-ness of the container, * grid system, and navbar. */ // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/variables.less"; // Bootstrap mixins @import "../bootstrap/less/mixins.less"; // T3 Base variables @import "variables.less"; // T3 Base mixins @import "mixins.less"; /* Reset the container */ .container { max-width: none !important; width: auto; .navbar-header, .navbar-collapse { margin-right: 0; margin-left: 0; } } /* Always float the navbar header */ .navbar-header { float: left; } /* Undo the collapsing navbar */ .navbar-collapse { display: block !important; height: auto !important; padding-bottom: 0; overflow: visible !important; } .navbar-toggle { display: none; } .navbar-brand { margin-left: -15px; } /* Always apply the floated nav */ .navbar-nav { float: left; margin: 0; > li { float: left; } /* Redeclare since we override the float above */ &.navbar-right { float: right; } } /* Undo custom dropdowns */ .navbar .open .dropdown-menu { position: absolute; float: left; > li > a { color: @dropdown-link-color; } > li > a:hover, > li > a:focus, > .active > a, > .active > a:hover, > .active > a:focus { color: @dropdown-link-hover-color !important; background-color: @dropdown-link-hover-bg !important; } > .disabled > a, > .disabled > a:hover, > .disabled > a:focus { color: @dropdown-link-disabled-color !important; background-color: transparent !important; } } t3.less 0000604 00000006610 15245611525 0005767 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: https://github.com/t3framework/ *------------------------------------------------------------------------------ */ // // INCLUDES VARIOUS FUNCTIONS FOR T3 // --------------------------------------------------------- // Always Show Submenu // --------------------------------------------------------- @media (max-width: @grid-float-breakpoint-max) { // Always show submenu for navigation .always-show .mega > .mega-dropdown-menu, .always-show .dropdown-menu { display: block !important; position: static; } // alway show all submenu for open dropdown in collapse menu .open .dropdown-menu { display: block; } } // T3 Logo // --------------------------------------------------------- .t3-logo, .t3-logo-small { display: block; text-decoration: none; //text-indent: -9999em; - use text-hide text-align: left; background-repeat: no-repeat; background-position: center; } // Sizes .t3-logo { width: 182px; height: 50px; } .t3-logo-small { width: 60px; height: 30px; } // Styles .t3-logo, .t3-logo-color { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-big-color.png"); } .t3-logo-small, .t3-logo-small.t3-logo-color { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-small-color.png"); } .t3-logo-dark { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-big-dark.png"); } .t3-logo-small.t3-logo-dark { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-small-dark.png"); } .t3-logo-light { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-big-light.png"); } .t3-logo-small.t3-logo-light { background-image: url("//static.joomlart.com/images/jat3v3-documents/logo-complete/t3logo-small-light.png"); } // Logo control class // --------------------------------------------------------- .logo-control { @media (max-width: @grid-float-breakpoint-max) { .logo-img-sm { display: block; } .logo-img { display: none; } } @media (min-width: @grid-float-breakpoint) { .logo-img-sm { display: none; } .logo-img { display: block; } } } // 3rd party extension core compatible // --------------------------------------------------------- // JomSocial #community-wrap { .collapse { position: relative; height: 0; overflow: hidden; display: block; } } // for interact with javascript // --------------------------------------------------------------------------- // place holder class to detect the grid variables value in javascript .body-data-holder:before { display: none; content: "grid-float-breakpoint:@{grid-float-breakpoint} screen-xs:@{screen-xs} screen-sm:@{screen-sm} screen-md:@{screen-md} screen-lg:@{screen-lg}"; } global-typo-responsive.less 0000604 00000004420 15245611525 0012062 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // responsive-global-typo.less // For phone and tablet devices // --------------------------------------------------------- .hidden { display: none !important; visibility: hidden; } // --------------------------------------------------------- // BANNERS // --------------------------------------------------------- // // Jumbotrons // --------------------------------------------------------- // // TABLET // --------------------------------------------------- @media (min-width: 768px) and (max-width: 979px) { // Jumbotron .jumbotron { padding: @T3globalPadding 0; } .jumbotron h1 { font-size: @baseFontSize * 2; } .jumbotron p { font-size: @baseFontSize; } // Masthead .masthead { padding: (@T3globalPadding * 2) 0; } .masthead h1 { font-size: @baseFontSize * 4; } .masthead p { font-size: @baseFontSize * 2; } .masthead .btn-large { font-size: @baseFontSize + 2; padding: (@baseFontSize - 2) (@baseFontSize + 2); margin-top: 0; } } // MOBILE // ------------------------------------------------------------- @media (max-width: 767px) { // Jumbotron .jumbotron { padding: @T3globalPadding 0; } .jumbotron h1 { font-size: @baseFontSize * 2; } .jumbotron p { font-size: @baseFontSize + 2px; } // Masthead .masthead { padding: @T3globalPadding 0; } .masthead h1 { font-size: @baseFontSize * 2; } .masthead p { font-size: @baseFontSize + 2px; } .masthead .btn-large { font-size: @baseFontSize; padding: (@baseFontSize - 2px) (@baseFontSize + 2px); margin-top: 0; } } global-modules-responsive.less 0000604 00000001431 15245611525 0012536 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ /* MODULE STYLE --------------------------------------------------------- */ .module-style () { } global-modules.less 0000604 00000001431 15245611525 0010343 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ /* MODULE STYLE --------------------------------------------------------- */ .module-style () { } font-awesome.less 0000604 00000002447 15245653310 0010047 0 ustar 00 /*! * Font Awesome 3.2.1 * the iconic font designed for Bootstrap * ------------------------------------------------------------------------------ * The full suite of pictographic icons, examples, and documentation can be * found at http://fontawesome.io. Stay up to date on Twitter at * http://twitter.com/fontawesome. * * License * ------------------------------------------------------------------------------ * - The Font Awesome font is licensed under SIL OFL 1.1 - * http://scripts.sil.org/OFL * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - * http://opensource.org/licenses/mit-license.html * - Font Awesome documentation licensed under CC BY 3.0 - * http://creativecommons.org/licenses/by/3.0/ * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: * "Font Awesome by Dave Gandy - http://fontawesome.io" * * Author - Dave Gandy * ------------------------------------------------------------------------------ * Email: dave@fontawesome.io * Twitter: http://twitter.com/davegandy * Work: Lead Product Designer @ Kyruus - http://kyruus.com */ @import "variables.less"; @import "mixins.less"; @import "path.less"; @import "core.less"; @import "bootstrap.less"; @import "extras.less"; @import "icons.less"; icons.less 0000604 00000042340 15245653310 0006552 0 ustar 00 /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen readers do not read off random characters that represent icons */ @import "variables.less"; // Modify this for custom colors, font-sizes, etc .icon-glass:before { content: @glass; } .icon-music:before { content: @music; } .icon-search:before { content: @search; } .icon-envelope-alt:before { content: @envelope-alt; } .icon-heart:before { content: @heart; } .icon-star:before { content: @star; } .icon-star-empty:before { content: @star-empty; } .icon-user:before { content: @user; } .icon-film:before { content: @film; } .icon-th-large:before { content: @th-large; } .icon-th:before { content: @th; } .icon-th-list:before { content: @th-list; } .icon-ok:before { content: @ok; } .icon-remove:before { content: @remove; } .icon-zoom-in:before { content: @zoom-in; } .icon-zoom-out:before { content: @zoom-out; } .icon-power-off:before, .icon-off:before { content: @off; } .icon-signal:before { content: @signal; } .icon-gear:before, .icon-cog:before { content: @cog; } .icon-trash:before { content: @trash; } .icon-home:before { content: @home; } .icon-file-alt:before { content: @file-alt; } .icon-time:before { content: @time; } .icon-road:before { content: @road; } .icon-download-alt:before { content: @download-alt; } .icon-download:before { content: @download; } .icon-upload:before { content: @upload; } .icon-inbox:before { content: @inbox; } .icon-play-circle:before { content: @play-circle; } .icon-rotate-right:before, .icon-repeat:before { content: @repeat; } .icon-refresh:before { content: @refresh; } .icon-list-alt:before { content: @list-alt; } .icon-lock:before { content: @lock; } .icon-flag:before { content: @flag; } .icon-headphones:before { content: @headphones; } .icon-volume-off:before { content: @volume-off; } .icon-volume-down:before { content: @volume-down; } .icon-volume-up:before { content: @volume-up; } .icon-qrcode:before { content: @qrcode; } .icon-barcode:before { content: @barcode; } .icon-tag:before { content: @tag; } .icon-tags:before { content: @tags; } .icon-book:before { content: @book; } .icon-bookmark:before { content: @bookmark; } .icon-print:before { content: @print; } .icon-camera:before { content: @camera; } .icon-font:before { content: @font; } .icon-bold:before { content: @bold; } .icon-italic:before { content: @italic; } .icon-text-height:before { content: @text-height; } .icon-text-width:before { content: @text-width; } .icon-align-left:before { content: @align-left; } .icon-align-center:before { content: @align-center; } .icon-align-right:before { content: @align-right; } .icon-align-justify:before { content: @align-justify; } .icon-list:before { content: @list; } .icon-indent-left:before { content: @indent-left; } .icon-indent-right:before { content: @indent-right; } .icon-facetime-video:before { content: @facetime-video; } .icon-picture:before { content: @picture; } .icon-pencil:before { content: @pencil; } .icon-map-marker:before { content: @map-marker; } .icon-adjust:before { content: @adjust; } .icon-tint:before { content: @tint; } .icon-edit:before { content: @edit; } .icon-share:before { content: @share; } .icon-check:before { content: @check; } .icon-move:before { content: @move; } .icon-step-backward:before { content: @step-backward; } .icon-fast-backward:before { content: @fast-backward; } .icon-backward:before { content: @backward; } .icon-play:before { content: @play; } .icon-pause:before { content: @pause; } .icon-stop:before { content: @stop; } .icon-forward:before { content: @forward; } .icon-fast-forward:before { content: @fast-forward; } .icon-step-forward:before { content: @step-forward; } .icon-eject:before { content: @eject; } .icon-chevron-left:before { content: @chevron-left; } .icon-chevron-right:before { content: @chevron-right; } .icon-plus-sign:before { content: @plus-sign; } .icon-minus-sign:before { content: @minus-sign; } .icon-remove-sign:before { content: @remove-sign; } .icon-ok-sign:before { content: @ok-sign; } .icon-question-sign:before { content: @question-sign; } .icon-info-sign:before { content: @info-sign; } .icon-screenshot:before { content: @screenshot; } .icon-remove-circle:before { content: @remove-circle; } .icon-ok-circle:before { content: @ok-circle; } .icon-ban-circle:before { content: @ban-circle; } .icon-arrow-left:before { content: @arrow-left; } .icon-arrow-right:before { content: @arrow-right; } .icon-arrow-up:before { content: @arrow-up; } .icon-arrow-down:before { content: @arrow-down; } .icon-mail-forward:before, .icon-share-alt:before { content: @share-alt; } .icon-resize-full:before { content: @resize-full; } .icon-resize-small:before { content: @resize-small; } .icon-plus:before { content: @plus; } .icon-minus:before { content: @minus; } .icon-asterisk:before { content: @asterisk; } .icon-exclamation-sign:before { content: @exclamation-sign; } .icon-gift:before { content: @gift; } .icon-leaf:before { content: @leaf; } .icon-fire:before { content: @fire; } .icon-eye-open:before { content: @eye-open; } .icon-eye-close:before { content: @eye-close; } .icon-warning-sign:before { content: @warning-sign; } .icon-plane:before { content: @plane; } .icon-calendar:before { content: @calendar; } .icon-random:before { content: @random; } .icon-comment:before { content: @comment; } .icon-magnet:before { content: @magnet; } .icon-chevron-up:before { content: @chevron-up; } .icon-chevron-down:before { content: @chevron-down; } .icon-retweet:before { content: @retweet; } .icon-shopping-cart:before { content: @shopping-cart; } .icon-folder-close:before { content: @folder-close; } .icon-folder-open:before { content: @folder-open; } .icon-resize-vertical:before { content: @resize-vertical; } .icon-resize-horizontal:before { content: @resize-horizontal; } .icon-bar-chart:before { content: @bar-chart; } .icon-twitter-sign:before { content: @twitter-sign; } .icon-facebook-sign:before { content: @facebook-sign; } .icon-camera-retro:before { content: @camera-retro; } .icon-key:before { content: @key; } .icon-gears:before, .icon-cogs:before { content: @cogs; } .icon-comments:before { content: @comments; } .icon-thumbs-up-alt:before { content: @thumbs-up-alt; } .icon-thumbs-down-alt:before { content: @thumbs-down-alt; } .icon-star-half:before { content: @star-half; } .icon-heart-empty:before { content: @heart-empty; } .icon-signout:before { content: @signout; } .icon-linkedin-sign:before { content: @linkedin-sign; } .icon-pushpin:before { content: @pushpin; } .icon-external-link:before { content: @external-link; } .icon-signin:before { content: @signin; } .icon-trophy:before { content: @trophy; } .icon-github-sign:before { content: @github-sign; } .icon-upload-alt:before { content: @upload-alt; } .icon-lemon:before { content: @lemon; } .icon-phone:before { content: @phone; } .icon-unchecked:before, .icon-check-empty:before { content: @check-empty; } .icon-bookmark-empty:before { content: @bookmark-empty; } .icon-phone-sign:before { content: @phone-sign; } .icon-twitter:before { content: @twitter; } .icon-facebook:before { content: @facebook; } .icon-github:before { content: @github; } .icon-unlock:before { content: @unlock; } .icon-credit-card:before { content: @credit-card; } .icon-rss:before { content: @rss; } .icon-hdd:before { content: @hdd; } .icon-bullhorn:before { content: @bullhorn; } .icon-bell:before { content: @bell; } .icon-certificate:before { content: @certificate; } .icon-hand-right:before { content: @hand-right; } .icon-hand-left:before { content: @hand-left; } .icon-hand-up:before { content: @hand-up; } .icon-hand-down:before { content: @hand-down; } .icon-circle-arrow-left:before { content: @circle-arrow-left; } .icon-circle-arrow-right:before { content: @circle-arrow-right; } .icon-circle-arrow-up:before { content: @circle-arrow-up; } .icon-circle-arrow-down:before { content: @circle-arrow-down; } .icon-globe:before { content: @globe; } .icon-wrench:before { content: @wrench; } .icon-tasks:before { content: @tasks; } .icon-filter:before { content: @filter; } .icon-briefcase:before { content: @briefcase; } .icon-fullscreen:before { content: @fullscreen; } .icon-group:before { content: @group; } .icon-link:before { content: @link; } .icon-cloud:before { content: @cloud; } .icon-beaker:before { content: @beaker; } .icon-cut:before { content: @cut; } .icon-copy:before { content: @copy; } .icon-paperclip:before, .icon-paper-clip:before { content: @paper-clip; } .icon-save:before { content: @save; } .icon-sign-blank:before { content: @sign-blank; } .icon-reorder:before { content: @reorder; } .icon-list-ul:before { content: @list-ul; } .icon-list-ol:before { content: @list-ol; } .icon-strikethrough:before { content: @strikethrough; } .icon-underline:before { content: @underline; } .icon-table:before { content: @table; } .icon-magic:before { content: @magic; } .icon-truck:before { content: @truck; } .icon-pinterest:before { content: @pinterest; } .icon-pinterest-sign:before { content: @pinterest-sign; } .icon-google-plus-sign:before { content: @google-plus-sign; } .icon-google-plus:before { content: @google-plus; } .icon-money:before { content: @money; } .icon-caret-down:before { content: @caret-down; } .icon-caret-up:before { content: @caret-up; } .icon-caret-left:before { content: @caret-left; } .icon-caret-right:before { content: @caret-right; } .icon-columns:before { content: @columns; } .icon-sort:before { content: @sort; } .icon-sort-down:before { content: @sort-down; } .icon-sort-up:before { content: @sort-up; } .icon-envelope:before { content: @envelope; } .icon-linkedin:before { content: @linkedin; } .icon-rotate-left:before, .icon-undo:before { content: @undo; } .icon-legal:before { content: @legal; } .icon-dashboard:before { content: @dashboard; } .icon-comment-alt:before { content: @comment-alt; } .icon-comments-alt:before { content: @comments-alt; } .icon-bolt:before { content: @bolt; } .icon-sitemap:before { content: @sitemap; } .icon-umbrella:before { content: @umbrella; } .icon-paste:before { content: @paste; } .icon-lightbulb:before { content: @lightbulb; } .icon-exchange:before { content: @exchange; } .icon-cloud-download:before { content: @cloud-download; } .icon-cloud-upload:before { content: @cloud-upload; } .icon-user-md:before { content: @user-md; } .icon-stethoscope:before { content: @stethoscope; } .icon-suitcase:before { content: @suitcase; } .icon-bell-alt:before { content: @bell-alt; } .icon-coffee:before { content: @coffee; } .icon-food:before { content: @food; } .icon-file-text-alt:before { content: @file-text-alt; } .icon-building:before { content: @building; } .icon-hospital:before { content: @hospital; } .icon-ambulance:before { content: @ambulance; } .icon-medkit:before { content: @medkit; } .icon-fighter-jet:before { content: @fighter-jet; } .icon-beer:before { content: @beer; } .icon-h-sign:before { content: @h-sign; } .icon-plus-sign-alt:before { content: @plus-sign-alt; } .icon-double-angle-left:before { content: @double-angle-left; } .icon-double-angle-right:before { content: @double-angle-right; } .icon-double-angle-up:before { content: @double-angle-up; } .icon-double-angle-down:before { content: @double-angle-down; } .icon-angle-left:before { content: @angle-left; } .icon-angle-right:before { content: @angle-right; } .icon-angle-up:before { content: @angle-up; } .icon-angle-down:before { content: @angle-down; } .icon-desktop:before { content: @desktop; } .icon-laptop:before { content: @laptop; } .icon-tablet:before { content: @tablet; } .icon-mobile-phone:before { content: @mobile-phone; } .icon-circle-blank:before { content: @circle-blank; } .icon-quote-left:before { content: @quote-left; } .icon-quote-right:before { content: @quote-right; } .icon-spinner:before { content: @spinner; } .icon-circle:before { content: @circle; } .icon-mail-reply:before, .icon-reply:before { content: @reply; } .icon-github-alt:before { content: @github-alt; } .icon-folder-close-alt:before { content: @folder-close-alt; } .icon-folder-open-alt:before { content: @folder-open-alt; } .icon-expand-alt:before { content: @expand-alt; } .icon-collapse-alt:before { content: @collapse-alt; } .icon-smile:before { content: @smile; } .icon-frown:before { content: @frown; } .icon-meh:before { content: @meh; } .icon-gamepad:before { content: @gamepad; } .icon-keyboard:before { content: @keyboard; } .icon-flag-alt:before { content: @flag-alt; } .icon-flag-checkered:before { content: @flag-checkered; } .icon-terminal:before { content: @terminal; } .icon-code:before { content: @code; } .icon-reply-all:before { content: @reply-all; } .icon-mail-reply-all:before { content: @mail-reply-all; } .icon-star-half-full:before, .icon-star-half-empty:before { content: @star-half-empty; } .icon-location-arrow:before { content: @location-arrow; } .icon-crop:before { content: @crop; } .icon-code-fork:before { content: @code-fork; } .icon-unlink:before { content: @unlink; } .icon-question:before { content: @question; } .icon-info:before { content: @info; } .icon-exclamation:before { content: @exclamation; } .icon-superscript:before { content: @superscript; } .icon-subscript:before { content: @subscript; } .icon-eraser:before { content: @eraser; } .icon-puzzle-piece:before { content: @puzzle-piece; } .icon-microphone:before { content: @microphone; } .icon-microphone-off:before { content: @microphone-off; } .icon-shield:before { content: @shield; } .icon-calendar-empty:before { content: @calendar-empty; } .icon-fire-extinguisher:before { content: @fire-extinguisher; } .icon-rocket:before { content: @rocket; } .icon-maxcdn:before { content: @maxcdn; } .icon-chevron-sign-left:before { content: @chevron-sign-left; } .icon-chevron-sign-right:before { content: @chevron-sign-right; } .icon-chevron-sign-up:before { content: @chevron-sign-up; } .icon-chevron-sign-down:before { content: @chevron-sign-down; } .icon-html5:before { content: @html5; } .icon-css3:before { content: @css3; } .icon-anchor:before { content: @anchor; } .icon-unlock-alt:before { content: @unlock-alt; } .icon-bullseye:before { content: @bullseye; } .icon-ellipsis-horizontal:before { content: @ellipsis-horizontal; } .icon-ellipsis-vertical:before { content: @ellipsis-vertical; } .icon-rss-sign:before { content: @rss-sign; } .icon-play-sign:before { content: @play-sign; } .icon-ticket:before { content: @ticket; } .icon-minus-sign-alt:before { content: @minus-sign-alt; } .icon-check-minus:before { content: @check-minus; } .icon-level-up:before { content: @level-up; } .icon-level-down:before { content: @level-down; } .icon-check-sign:before { content: @check-sign; } .icon-edit-sign:before { content: @edit-sign; } .icon-external-link-sign:before { content: @external-link-sign; } .icon-share-sign:before { content: @share-sign; } .icon-compass:before { content: @compass; } .icon-collapse:before { content: @collapse; } .icon-collapse-top:before { content: @collapse-top; } .icon-expand:before { content: @expand; } .icon-euro:before, .icon-eur:before { content: @eur; } .icon-gbp:before { content: @gbp; } .icon-dollar:before, .icon-usd:before { content: @usd; } .icon-rupee:before, .icon-inr:before { content: @inr; } .icon-yen:before, .icon-jpy:before { content: @jpy; } .icon-renminbi:before, .icon-cny:before { content: @cny; } .icon-won:before, .icon-krw:before { content: @krw; } .icon-bitcoin:before, .icon-btc:before { content: @btc; } .icon-file:before { content: @file; } .icon-file-text:before { content: @file-text; } .icon-sort-by-alphabet:before { content: @sort-by-alphabet; } .icon-sort-by-alphabet-alt:before { content: @sort-by-alphabet-alt; } .icon-sort-by-attributes:before { content: @sort-by-attributes; } .icon-sort-by-attributes-alt:before { content: @sort-by-attributes-alt; } .icon-sort-by-order:before { content: @sort-by-order; } .icon-sort-by-order-alt:before { content: @sort-by-order-alt; } .icon-thumbs-up:before { content: @thumbs-up; } .icon-thumbs-down:before { content: @thumbs-down; } .icon-youtube-sign:before { content: @youtube-sign; } .icon-youtube:before { content: @youtube; } .icon-xing:before { content: @xing; } .icon-xing-sign:before { content: @xing-sign; } .icon-youtube-play:before { content: @youtube-play; } .icon-dropbox:before { content: @dropbox; } .icon-stackexchange:before { content: @stackexchange; } .icon-instagram:before { content: @instagram; } .icon-flickr:before { content: @flickr; } .icon-adn:before { content: @adn; } .icon-bitbucket:before { content: @bitbucket; } .icon-bitbucket-sign:before { content: @bitbucket-sign; } .icon-tumblr:before { content: @tumblr; } .icon-tumblr-sign:before { content: @tumblr-sign; } .icon-long-arrow-down:before { content: @long-arrow-down; } .icon-long-arrow-up:before { content: @long-arrow-up; } .icon-long-arrow-left:before { content: @long-arrow-left; } .icon-long-arrow-right:before { content: @long-arrow-right; } .icon-apple:before { content: @apple; } .icon-windows:before { content: @windows; } .icon-android:before { content: @android; } .icon-linux:before { content: @linux; } .icon-dribbble:before { content: @dribbble; } .icon-skype:before { content: @skype; } .icon-foursquare:before { content: @foursquare; } .icon-trello:before { content: @trello; } .icon-female:before { content: @female; } .icon-male:before { content: @male; } .icon-gittip:before { content: @gittip; } .icon-sun:before { content: @sun; } .icon-moon:before { content: @moon; } .icon-archive:before { content: @archive; } .icon-bug:before { content: @bug; } .icon-vk:before { content: @vk; } .icon-weibo:before { content: @weibo; } .icon-renren:before { content: @renren; } font-awesome-ie7.less 0000604 00000045543 15245653310 0010535 0 ustar 00 /*! * Font Awesome 3.2.1 * the iconic font designed for Bootstrap * ------------------------------------------------------------------------------ * The full suite of pictographic icons, examples, and documentation can be * found at http://fontawesome.io. Stay up to date on Twitter at * http://twitter.com/fontawesome. * * License * ------------------------------------------------------------------------------ * - The Font Awesome font is licensed under SIL OFL 1.1 - * http://scripts.sil.org/OFL * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - * http://opensource.org/licenses/mit-license.html * - Font Awesome documentation licensed under CC BY 3.0 - * http://creativecommons.org/licenses/by/3.0/ * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: * "Font Awesome by Dave Gandy - http://fontawesome.io" * * Author - Dave Gandy * ------------------------------------------------------------------------------ * Email: dave@fontawesome.io * Twitter: http://twitter.com/davegandy * Work: Lead Product Designer @ Kyruus - http://kyruus.com */ .icon-large { font-size: 4/3em; margin-top: -4px; padding-top: 3px; margin-bottom: -4px; padding-bottom: 3px; vertical-align: middle; } .nav { [class^="icon-"], [class*=" icon-"] { vertical-align: inherit; margin-top: -4px; padding-top: 3px; margin-bottom: -4px; padding-bottom: 3px; &.icon-large { vertical-align: -25%; } } } .nav-pills, .nav-tabs { [class^="icon-"], [class*=" icon-"] { &.icon-large { line-height: .75em; margin-top: -7px; padding-top: 5px; margin-bottom: -5px; padding-bottom: 4px; } } } .btn { [class^="icon-"], [class*=" icon-"] { &.pull-left, &.pull-right { vertical-align: inherit; } &.icon-large { margin-top: -.5em; } } } a [class^="icon-"], a [class*=" icon-"] { cursor: pointer; } .ie7icon(@inner) { *zoom: ~"expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '@{inner}')"; } .icon-glass { .ie7icon(''); } .icon-music { .ie7icon(''); } .icon-search { .ie7icon(''); } .icon-envelope-alt { .ie7icon(''); } .icon-heart { .ie7icon(''); } .icon-star { .ie7icon(''); } .icon-star-empty { .ie7icon(''); } .icon-user { .ie7icon(''); } .icon-film { .ie7icon(''); } .icon-th-large { .ie7icon(''); } .icon-th { .ie7icon(''); } .icon-th-list { .ie7icon(''); } .icon-ok { .ie7icon(''); } .icon-remove { .ie7icon(''); } .icon-zoom-in { .ie7icon(''); } .icon-zoom-out { .ie7icon(''); } .icon-off { .ie7icon(''); } .icon-power-off { .ie7icon(''); } .icon-signal { .ie7icon(''); } .icon-cog { .ie7icon(''); } .icon-gear { .ie7icon(''); } .icon-trash { .ie7icon(''); } .icon-home { .ie7icon(''); } .icon-file-alt { .ie7icon(''); } .icon-time { .ie7icon(''); } .icon-road { .ie7icon(''); } .icon-download-alt { .ie7icon(''); } .icon-download { .ie7icon(''); } .icon-upload { .ie7icon(''); } .icon-inbox { .ie7icon(''); } .icon-play-circle { .ie7icon(''); } .icon-repeat { .ie7icon(''); } .icon-rotate-right { .ie7icon(''); } .icon-refresh { .ie7icon(''); } .icon-list-alt { .ie7icon(''); } .icon-lock { .ie7icon(''); } .icon-flag { .ie7icon(''); } .icon-headphones { .ie7icon(''); } .icon-volume-off { .ie7icon(''); } .icon-volume-down { .ie7icon(''); } .icon-volume-up { .ie7icon(''); } .icon-qrcode { .ie7icon(''); } .icon-barcode { .ie7icon(''); } .icon-tag { .ie7icon(''); } .icon-tags { .ie7icon(''); } .icon-book { .ie7icon(''); } .icon-bookmark { .ie7icon(''); } .icon-print { .ie7icon(''); } .icon-camera { .ie7icon(''); } .icon-font { .ie7icon(''); } .icon-bold { .ie7icon(''); } .icon-italic { .ie7icon(''); } .icon-text-height { .ie7icon(''); } .icon-text-width { .ie7icon(''); } .icon-align-left { .ie7icon(''); } .icon-align-center { .ie7icon(''); } .icon-align-right { .ie7icon(''); } .icon-align-justify { .ie7icon(''); } .icon-list { .ie7icon(''); } .icon-indent-left { .ie7icon(''); } .icon-indent-right { .ie7icon(''); } .icon-facetime-video { .ie7icon(''); } .icon-picture { .ie7icon(''); } .icon-pencil { .ie7icon(''); } .icon-map-marker { .ie7icon(''); } .icon-adjust { .ie7icon(''); } .icon-tint { .ie7icon(''); } .icon-edit { .ie7icon(''); } .icon-share { .ie7icon(''); } .icon-check { .ie7icon(''); } .icon-move { .ie7icon(''); } .icon-step-backward { .ie7icon(''); } .icon-fast-backward { .ie7icon(''); } .icon-backward { .ie7icon(''); } .icon-play { .ie7icon(''); } .icon-pause { .ie7icon(''); } .icon-stop { .ie7icon(''); } .icon-forward { .ie7icon(''); } .icon-fast-forward { .ie7icon(''); } .icon-step-forward { .ie7icon(''); } .icon-eject { .ie7icon(''); } .icon-chevron-left { .ie7icon(''); } .icon-chevron-right { .ie7icon(''); } .icon-plus-sign { .ie7icon(''); } .icon-minus-sign { .ie7icon(''); } .icon-remove-sign { .ie7icon(''); } .icon-ok-sign { .ie7icon(''); } .icon-question-sign { .ie7icon(''); } .icon-info-sign { .ie7icon(''); } .icon-screenshot { .ie7icon(''); } .icon-remove-circle { .ie7icon(''); } .icon-ok-circle { .ie7icon(''); } .icon-ban-circle { .ie7icon(''); } .icon-arrow-left { .ie7icon(''); } .icon-arrow-right { .ie7icon(''); } .icon-arrow-up { .ie7icon(''); } .icon-arrow-down { .ie7icon(''); } .icon-share-alt { .ie7icon(''); } .icon-mail-forward { .ie7icon(''); } .icon-resize-full { .ie7icon(''); } .icon-resize-small { .ie7icon(''); } .icon-plus { .ie7icon(''); } .icon-minus { .ie7icon(''); } .icon-asterisk { .ie7icon(''); } .icon-exclamation-sign { .ie7icon(''); } .icon-gift { .ie7icon(''); } .icon-leaf { .ie7icon(''); } .icon-fire { .ie7icon(''); } .icon-eye-open { .ie7icon(''); } .icon-eye-close { .ie7icon(''); } .icon-warning-sign { .ie7icon(''); } .icon-plane { .ie7icon(''); } .icon-calendar { .ie7icon(''); } .icon-random { .ie7icon(''); } .icon-comment { .ie7icon(''); } .icon-magnet { .ie7icon(''); } .icon-chevron-up { .ie7icon(''); } .icon-chevron-down { .ie7icon(''); } .icon-retweet { .ie7icon(''); } .icon-shopping-cart { .ie7icon(''); } .icon-folder-close { .ie7icon(''); } .icon-folder-open { .ie7icon(''); } .icon-resize-vertical { .ie7icon(''); } .icon-resize-horizontal { .ie7icon(''); } .icon-bar-chart { .ie7icon(''); } .icon-twitter-sign { .ie7icon(''); } .icon-facebook-sign { .ie7icon(''); } .icon-camera-retro { .ie7icon(''); } .icon-key { .ie7icon(''); } .icon-cogs { .ie7icon(''); } .icon-gears { .ie7icon(''); } .icon-comments { .ie7icon(''); } .icon-thumbs-up-alt { .ie7icon(''); } .icon-thumbs-down-alt { .ie7icon(''); } .icon-star-half { .ie7icon(''); } .icon-heart-empty { .ie7icon(''); } .icon-signout { .ie7icon(''); } .icon-linkedin-sign { .ie7icon(''); } .icon-pushpin { .ie7icon(''); } .icon-external-link { .ie7icon(''); } .icon-signin { .ie7icon(''); } .icon-trophy { .ie7icon(''); } .icon-github-sign { .ie7icon(''); } .icon-upload-alt { .ie7icon(''); } .icon-lemon { .ie7icon(''); } .icon-phone { .ie7icon(''); } .icon-check-empty { .ie7icon(''); } .icon-unchecked { .ie7icon(''); } .icon-bookmark-empty { .ie7icon(''); } .icon-phone-sign { .ie7icon(''); } .icon-twitter { .ie7icon(''); } .icon-facebook { .ie7icon(''); } .icon-github { .ie7icon(''); } .icon-unlock { .ie7icon(''); } .icon-credit-card { .ie7icon(''); } .icon-rss { .ie7icon(''); } .icon-hdd { .ie7icon(''); } .icon-bullhorn { .ie7icon(''); } .icon-bell { .ie7icon(''); } .icon-certificate { .ie7icon(''); } .icon-hand-right { .ie7icon(''); } .icon-hand-left { .ie7icon(''); } .icon-hand-up { .ie7icon(''); } .icon-hand-down { .ie7icon(''); } .icon-circle-arrow-left { .ie7icon(''); } .icon-circle-arrow-right { .ie7icon(''); } .icon-circle-arrow-up { .ie7icon(''); } .icon-circle-arrow-down { .ie7icon(''); } .icon-globe { .ie7icon(''); } .icon-wrench { .ie7icon(''); } .icon-tasks { .ie7icon(''); } .icon-filter { .ie7icon(''); } .icon-briefcase { .ie7icon(''); } .icon-fullscreen { .ie7icon(''); } .icon-group { .ie7icon(''); } .icon-link { .ie7icon(''); } .icon-cloud { .ie7icon(''); } .icon-beaker { .ie7icon(''); } .icon-cut { .ie7icon(''); } .icon-copy { .ie7icon(''); } .icon-paper-clip { .ie7icon(''); } .icon-paperclip { .ie7icon(''); } .icon-save { .ie7icon(''); } .icon-sign-blank { .ie7icon(''); } .icon-reorder { .ie7icon(''); } .icon-list-ul { .ie7icon(''); } .icon-list-ol { .ie7icon(''); } .icon-strikethrough { .ie7icon(''); } .icon-underline { .ie7icon(''); } .icon-table { .ie7icon(''); } .icon-magic { .ie7icon(''); } .icon-truck { .ie7icon(''); } .icon-pinterest { .ie7icon(''); } .icon-pinterest-sign { .ie7icon(''); } .icon-google-plus-sign { .ie7icon(''); } .icon-google-plus { .ie7icon(''); } .icon-money { .ie7icon(''); } .icon-caret-down { .ie7icon(''); } .icon-caret-up { .ie7icon(''); } .icon-caret-left { .ie7icon(''); } .icon-caret-right { .ie7icon(''); } .icon-columns { .ie7icon(''); } .icon-sort { .ie7icon(''); } .icon-sort-down { .ie7icon(''); } .icon-sort-up { .ie7icon(''); } .icon-envelope { .ie7icon(''); } .icon-linkedin { .ie7icon(''); } .icon-undo { .ie7icon(''); } .icon-rotate-left { .ie7icon(''); } .icon-legal { .ie7icon(''); } .icon-dashboard { .ie7icon(''); } .icon-comment-alt { .ie7icon(''); } .icon-comments-alt { .ie7icon(''); } .icon-bolt { .ie7icon(''); } .icon-sitemap { .ie7icon(''); } .icon-umbrella { .ie7icon(''); } .icon-paste { .ie7icon(''); } .icon-lightbulb { .ie7icon(''); } .icon-exchange { .ie7icon(''); } .icon-cloud-download { .ie7icon(''); } .icon-cloud-upload { .ie7icon(''); } .icon-user-md { .ie7icon(''); } .icon-stethoscope { .ie7icon(''); } .icon-suitcase { .ie7icon(''); } .icon-bell-alt { .ie7icon(''); } .icon-coffee { .ie7icon(''); } .icon-food { .ie7icon(''); } .icon-file-text-alt { .ie7icon(''); } .icon-building { .ie7icon(''); } .icon-hospital { .ie7icon(''); } .icon-ambulance { .ie7icon(''); } .icon-medkit { .ie7icon(''); } .icon-fighter-jet { .ie7icon(''); } .icon-beer { .ie7icon(''); } .icon-h-sign { .ie7icon(''); } .icon-plus-sign-alt { .ie7icon(''); } .icon-double-angle-left { .ie7icon(''); } .icon-double-angle-right { .ie7icon(''); } .icon-double-angle-up { .ie7icon(''); } .icon-double-angle-down { .ie7icon(''); } .icon-angle-left { .ie7icon(''); } .icon-angle-right { .ie7icon(''); } .icon-angle-up { .ie7icon(''); } .icon-angle-down { .ie7icon(''); } .icon-desktop { .ie7icon(''); } .icon-laptop { .ie7icon(''); } .icon-tablet { .ie7icon(''); } .icon-mobile-phone { .ie7icon(''); } .icon-circle-blank { .ie7icon(''); } .icon-quote-left { .ie7icon(''); } .icon-quote-right { .ie7icon(''); } .icon-spinner { .ie7icon(''); } .icon-circle { .ie7icon(''); } .icon-reply { .ie7icon(''); } .icon-mail-reply { .ie7icon(''); } .icon-github-alt { .ie7icon(''); } .icon-folder-close-alt { .ie7icon(''); } .icon-folder-open-alt { .ie7icon(''); } .icon-expand-alt { .ie7icon(''); } .icon-collapse-alt { .ie7icon(''); } .icon-smile { .ie7icon(''); } .icon-frown { .ie7icon(''); } .icon-meh { .ie7icon(''); } .icon-gamepad { .ie7icon(''); } .icon-keyboard { .ie7icon(''); } .icon-flag-alt { .ie7icon(''); } .icon-flag-checkered { .ie7icon(''); } .icon-terminal { .ie7icon(''); } .icon-code { .ie7icon(''); } .icon-reply-all { .ie7icon(''); } .icon-mail-reply-all { .ie7icon(''); } .icon-star-half-empty { .ie7icon(''); } .icon-star-half-full { .ie7icon(''); } .icon-location-arrow { .ie7icon(''); } .icon-crop { .ie7icon(''); } .icon-code-fork { .ie7icon(''); } .icon-unlink { .ie7icon(''); } .icon-question { .ie7icon(''); } .icon-info { .ie7icon(''); } .icon-exclamation { .ie7icon(''); } .icon-superscript { .ie7icon(''); } .icon-subscript { .ie7icon(''); } .icon-eraser { .ie7icon(''); } .icon-puzzle-piece { .ie7icon(''); } .icon-microphone { .ie7icon(''); } .icon-microphone-off { .ie7icon(''); } .icon-shield { .ie7icon(''); } .icon-calendar-empty { .ie7icon(''); } .icon-fire-extinguisher { .ie7icon(''); } .icon-rocket { .ie7icon(''); } .icon-maxcdn { .ie7icon(''); } .icon-chevron-sign-left { .ie7icon(''); } .icon-chevron-sign-right { .ie7icon(''); } .icon-chevron-sign-up { .ie7icon(''); } .icon-chevron-sign-down { .ie7icon(''); } .icon-html5 { .ie7icon(''); } .icon-css3 { .ie7icon(''); } .icon-anchor { .ie7icon(''); } .icon-unlock-alt { .ie7icon(''); } .icon-bullseye { .ie7icon(''); } .icon-ellipsis-horizontal { .ie7icon(''); } .icon-ellipsis-vertical { .ie7icon(''); } .icon-rss-sign { .ie7icon(''); } .icon-play-sign { .ie7icon(''); } .icon-ticket { .ie7icon(''); } .icon-minus-sign-alt { .ie7icon(''); } .icon-check-minus { .ie7icon(''); } .icon-level-up { .ie7icon(''); } .icon-level-down { .ie7icon(''); } .icon-check-sign { .ie7icon(''); } .icon-edit-sign { .ie7icon(''); } .icon-external-link-sign { .ie7icon(''); } .icon-share-sign { .ie7icon(''); } .icon-compass { .ie7icon(''); } .icon-collapse { .ie7icon(''); } .icon-collapse-top { .ie7icon(''); } .icon-expand { .ie7icon(''); } .icon-eur { .ie7icon(''); } .icon-euro { .ie7icon(''); } .icon-gbp { .ie7icon(''); } .icon-usd { .ie7icon(''); } .icon-dollar { .ie7icon(''); } .icon-inr { .ie7icon(''); } .icon-rupee { .ie7icon(''); } .icon-jpy { .ie7icon(''); } .icon-yen { .ie7icon(''); } .icon-cny { .ie7icon(''); } .icon-renminbi { .ie7icon(''); } .icon-krw { .ie7icon(''); } .icon-won { .ie7icon(''); } .icon-btc { .ie7icon(''); } .icon-bitcoin { .ie7icon(''); } .icon-file { .ie7icon(''); } .icon-file-text { .ie7icon(''); } .icon-sort-by-alphabet { .ie7icon(''); } .icon-sort-by-alphabet-alt { .ie7icon(''); } .icon-sort-by-attributes { .ie7icon(''); } .icon-sort-by-attributes-alt { .ie7icon(''); } .icon-sort-by-order { .ie7icon(''); } .icon-sort-by-order-alt { .ie7icon(''); } .icon-thumbs-up { .ie7icon(''); } .icon-thumbs-down { .ie7icon(''); } .icon-youtube-sign { .ie7icon(''); } .icon-youtube { .ie7icon(''); } .icon-xing { .ie7icon(''); } .icon-xing-sign { .ie7icon(''); } .icon-youtube-play { .ie7icon(''); } .icon-dropbox { .ie7icon(''); } .icon-stackexchange { .ie7icon(''); } .icon-instagram { .ie7icon(''); } .icon-flickr { .ie7icon(''); } .icon-adn { .ie7icon(''); } .icon-bitbucket { .ie7icon(''); } .icon-bitbucket-sign { .ie7icon(''); } .icon-tumblr { .ie7icon(''); } .icon-tumblr-sign { .ie7icon(''); } .icon-long-arrow-down { .ie7icon(''); } .icon-long-arrow-up { .ie7icon(''); } .icon-long-arrow-left { .ie7icon(''); } .icon-long-arrow-right { .ie7icon(''); } .icon-apple { .ie7icon(''); } .icon-windows { .ie7icon(''); } .icon-android { .ie7icon(''); } .icon-linux { .ie7icon(''); } .icon-dribbble { .ie7icon(''); } .icon-skype { .ie7icon(''); } .icon-foursquare { .ie7icon(''); } .icon-trello { .ie7icon(''); } .icon-female { .ie7icon(''); } .icon-male { .ie7icon(''); } .icon-gittip { .ie7icon(''); } .icon-sun { .ie7icon(''); } .icon-moon { .ie7icon(''); } .icon-archive { .ie7icon(''); } .icon-bug { .ie7icon(''); } .icon-vk { .ie7icon(''); } .icon-weibo { .ie7icon(''); } .icon-renren { .ie7icon(''); } path.less 0000604 00000001346 15245653310 0006374 0 ustar 00 /* FONT PATH * -------------------------- */ @font-face { font-family: 'FontAwesome'; src: url('@{FontAwesomePath}/fontawesome-webfont.eot?v=@{FontAwesomeVersion}'); src: url('@{FontAwesomePath}/fontawesome-webfont.eot?#iefix&v=@{FontAwesomeVersion}') format('embedded-opentype'), url('@{FontAwesomePath}/fontawesome-webfont.woff?v=@{FontAwesomeVersion}') format('woff'), url('@{FontAwesomePath}/fontawesome-webfont.ttf?v=@{FontAwesomeVersion}') format('truetype'), url('@{FontAwesomePath}/fontawesome-webfont.svg#fontawesomeregular?v=@{FontAwesomeVersion}') format('svg'); // src: url('@{FontAwesomePath}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; } extras.less 0000604 00000004536 15245653310 0006752 0 ustar 00 /* EXTRAS * -------------------------- */ /* Stacked and layered icon */ .icon-stack(); /* Animated rotating icon */ .icon-spin { display: inline-block; -moz-animation: spin 2s infinite linear; -o-animation: spin 2s infinite linear; -webkit-animation: spin 2s infinite linear; animation: spin 2s infinite linear; } /* Prevent stack and spinners from being taken inline when inside a link */ a .icon-stack, a .icon-spin { display: inline-block; text-decoration: none; } @-moz-keyframes spin { 0% { -moz-transform: rotate(0deg); } 100% { -moz-transform: rotate(359deg); } } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(359deg); } } @-o-keyframes spin { 0% { -o-transform: rotate(0deg); } 100% { -o-transform: rotate(359deg); } } @-ms-keyframes spin { 0% { -ms-transform: rotate(0deg); } 100% { -ms-transform: rotate(359deg); } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(359deg); } } /* Icon rotations and mirroring */ .icon-rotate-90:before { -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); } .icon-rotate-180:before { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); } .icon-rotate-270:before { -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); } .icon-flip-horizontal:before { -webkit-transform: scale(-1, 1); -moz-transform: scale(-1, 1); -ms-transform: scale(-1, 1); -o-transform: scale(-1, 1); transform: scale(-1, 1); } .icon-flip-vertical:before { -webkit-transform: scale(1, -1); -moz-transform: scale(1, -1); -ms-transform: scale(1, -1); -o-transform: scale(1, -1); transform: scale(1, -1); } /* ensure rotation occurs inside anchor tags */ a { .icon-rotate-90, .icon-rotate-180, .icon-rotate-270, .icon-flip-horizontal, .icon-flip-vertical { &:before { display: inline-block; } } } joomla3-compat.less 0000604 00000010020 15245653310 0010252 0 ustar 00 /* This file provides a mapping from Joomla3 icon classes to FontAwesome icons */ .icon-address:before { content: @book; } .icon-arrow-down-2:before { content: @circle-arrow-down; } .icon-arrow-down-3:before { content: @caret-down; } .icon-arrow-first:before { content: @step-backward; } .icon-arrow-last:before { content: @step-forward; } .icon-arrow-left-2:before { content: @circle-arrow-left; } .icon-arrow-left-3:before { content: @caret-left; } .icon-arrow-right-2:before { content: @circle-arrow-right; } .icon-arrow-right-3:before { content: @caret-right; } .icon-arrow-up-2:before { content: @circle-arrow-up; } .icon-arrow-up-3:before { content: @caret-up; } .icon-bars:before { content: @bar-chart; } .icon-basket:before { content: @shopping-cart; } .icon-box-add:before { content: @download-alt; } .icon-box-remove:before { content: @upload-alt; } .icon-broadcast:before { content: @signal; } .icon-brush:before { content: @tint; } .icon-calendar-2:before { content: @calendar; } .icon-camera-2:before { content: @facetime-video; } .icon-cancel:before { content: @remove-sign; } .icon-cancel-2:before { content: @remove; } .icon-cart:before { content: @shopping-cart; } .icon-chart:before { content: @bar-chart; } .icon-checkbox:before { content: @check; } .icon-checkbox-partial:before { content: @check-minus; } .icon-checkbox-unchecked:before { content: @check-empty; } .icon-checkmark:before { content: @ok; } .icon-clock:before { content: @time; } .icon-color-palette:before { content: @dashboard; } .icon-comments-2:before { content: @comments; } .icon-contract:before { content: @resize-small; } .icon-contract-2:before { content: @resize-small; } .icon-cube:before { content: @inbox; } .icon-database:before { content: @hdd; } .icon-drawer:before { content: @inbox; } .icon-drawer-2:before { content: @inbox; } .icon-expand:before { content: @resize-full; } .icon-expand-2:before { content: @fullscreen; } .icon-eye:before { content: @eye-open; } .icon-feed:before { content: @rss-sign; } .icon-file-add:before { content: @expand-alt; } .icon-file-remove:before { content: @collapse-alt; } .icon-first:before { content: @fast-backward; } .icon-flag-2:before { content: @paper-clip; } .icon-folder:before { content: @folder-open; } .icon-folder-2:before { content: @folder-close; } .icon-grid-view:before { content: @columns; } .icon-grid-view-2:before { content: @th; } .icon-health:before { content: @stethoscope; } .icon-help:before { content: @question-sign; } .icon-lamp:before { content: @lightbulb; } .icon-last:before { content: @fast-forward; } .icon-lightning:before { content: @bolt; } .icon-list-view:before { content: @list-ul; } .icon-location:before { content: @map-marker; } .icon-locked:before { content: @lock; } .icon-loop:before { content: @refresh; } .icon-mail:before { content: @envelope; } .icon-mail-2:before { content: @envelope-alt; } .icon-menu:before { content: @ellipsis-vertical; } .icon-menu-2:before { content: @sort; } .icon-minus-2:before { content: @minus; } .icon-mobile:before { content: @mobile-phone; } .icon-next:before { content: @forward; } .icon-out:before { content: @share; } .icon-out-2:before { content: @signout; } .icon-pencil-2:before { content: @pencil; } .icon-pictures:before { content: @picture; } .icon-pin:before { content: @pushpin; } .icon-play-2:before { content: @play-circle; } .icon-plus-2:before { content: @plus; } .icon-power-cord:before { content: @magnet; } .icon-previous:before { content: @backward; } .icon-printer:before { content: @print; } .icon-puzzle:before { content: @puzzle-piece; } .icon-quote:before { content: @quote-left; } .icon-quote-2:before { content: @quote-right; } .icon-redo:before { content: @share-alt; } .icon-screen:before { content: @desktop; } .icon-shuffle:before { content: @random; } .icon-star-2:before { content: @star-half-empty; } .icon-support:before { content: @screenshot; } .icon-tools:before { content: @wrench; } .icon-users:before { content: @group; } .icon-vcard:before { content: @renren; } .icon-wand:before { content: @magic; } .icon-warning:before { content: @warning-sign; } font.less 0000604 00000017043 15245657416 0006422 0 ustar 00 @font-face { font-family: 'RegularLabs'; src: url('../fonts/RegularLabs.eot'); src: url('../fonts/RegularLabs.eot?#iefix') format('embedded-opentype'), url('../fonts/RegularLabs.woff') format('woff'), url('../fonts/RegularLabs.ttf') format('truetype'), url('../fonts/RegularLabs.svg#RegularLabs') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'RegularLabsIcons'; src: url('../fonts/RegularLabsIcons.eot'); src: url('../fonts/RegularLabsIcons.eot?#iefix') format('embedded-opentype'), url('../fonts/RegularLabsIcons.woff') format('woff'), url('../fonts/RegularLabsIcons.ttf') format('truetype'), url('../fonts/RegularLabsIcons.svg#RegularLabsIcons') format('svg'); font-weight: normal; font-style: normal; } .icon-reglab, [class^="icon-reglab-"], [class*=" icon-reglab-"] { display: inline-block; .ie7-restore-right-whitespace(); speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .icon-reglab, [class^="icon-reglab-"], [class*=" icon-reglab-"] { width: 14px; height: 14px; } .icon-reglab { width: 1em !important; height: 1em !important; background-color: #000; mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='100 100 760 760'%3E%3Cpath d='M444.22,100.12H175.9A40,40,0,0,0,140.12,158L247.45,372.67a40,40,0,0,0,53.66,17.89L515.78,283.23a40,40,0,0,0,17.89-53.67L480,122.23A40,40,0,0,0,444.22,100.12Z' /%3E%3Cpath d='M658.89,569.44,444.22,676.77a40,40,0,0,0-17.89,53.67L480,837.77a40,40,0,0,0,35.78,22.11H784.1A40,40,0,0,0,819.88,802L712.55,587.33A40,40,0,0,0,658.89,569.44Z' /%3E%3Cpath d='M229.56,426.33,122.23,480a40,40,0,0,0-22.11,35.78V784.1A40,40,0,0,0,158,819.88L372.67,712.55a40,40,0,0,0,17.89-53.66L283.23,444.22A40,40,0,0,0,229.56,426.33Z' /%3E%3Cpath d='M840.91,141.87A40,40,0,0,0,802,140.12L587.33,247.45a40,40,0,0,0-17.89,53.66L676.77,515.78a40,40,0,0,0,53.67,17.89L837.77,480a40,40,0,0,0,22.11-35.78V175.9A40,40,0,0,0,840.91,141.87Z' /%3E%3C/svg%3E%0A"); mask-repeat: no-repeat; mask-size: contain; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='100 100 760 760'%3E%3Cpath d='M444.22,100.12H175.9A40,40,0,0,0,140.12,158L247.45,372.67a40,40,0,0,0,53.66,17.89L515.78,283.23a40,40,0,0,0,17.89-53.67L480,122.23A40,40,0,0,0,444.22,100.12Z' /%3E%3Cpath d='M658.89,569.44,444.22,676.77a40,40,0,0,0-17.89,53.67L480,837.77a40,40,0,0,0,35.78,22.11H784.1A40,40,0,0,0,819.88,802L712.55,587.33A40,40,0,0,0,658.89,569.44Z' /%3E%3Cpath d='M229.56,426.33,122.23,480a40,40,0,0,0-22.11,35.78V784.1A40,40,0,0,0,158,819.88L372.67,712.55a40,40,0,0,0,17.89-53.66L283.23,444.22A40,40,0,0,0,229.56,426.33Z' /%3E%3Cpath d='M840.91,141.87A40,40,0,0,0,802,140.12L587.33,247.45a40,40,0,0,0-17.89,53.66L676.77,515.78a40,40,0,0,0,53.67,17.89L837.77,480a40,40,0,0,0,22.11-35.78V175.9A40,40,0,0,0,840.91,141.87Z' /%3E%3C/svg%3E%0A"); -webkit-mask-repeat: no-repeat; -webkit-mask-size: contain; } .page-title { .icon-reglab { margin-right: 12px !important; background-color: #fff; } } .btn-toolbar .btn-wrapper { .icon-reglab { width: 28px !important; height: auto !important; } } .btn-wrapper, .btn-group, .btn { .icon-reglab { background-color: transparent; mask-image: none; -webkit-mask-image: none; &:before { font-family: 'RegularLabs' !important; vertical-align: bottom; } &.icon- { ®lab:before { content: "\e000"; } &addtomenu:before { content: "\e001"; } &advancedmodulemanager:before { content: "\e003"; } &advancedtemplatemanager:before { content: "\e015"; } &articlesanywhere:before { content: "\e004"; } &articlesfield:before { content: "\e01d"; } &betterpreview:before { content: "\e005"; } &bettertrash:before { content: "\e01b"; } &cachecleaner:before { content: "\e006"; } &cdnforjoomla:before { content: "\e007"; } &componentsanywhere:before { content: "\e008"; } &conditionalcontent:before { content: "\e019"; } &contenttemplater:before { content: "\e009"; } &dbreplacer:before { content: "\e00a"; } &dummycontent:before { content: "\e017"; } &emailprotector:before { content: "\e00b"; } &geoip:before { content: "\e018"; } &iplogin:before { content: "\e016"; } &keyboardshortcuts:before { content: "\e01e"; } &modals:before { content: "\e00c"; } &modulesanywhere:before { content: "\e00d"; } &quickindex:before { content: "\e01c"; } &rereplacer:before { content: "\e00e"; } &simpleusernotes:before { content: "\e01a"; } &sliders:before { content: "\e00f"; } &snippets:before { content: "\e010"; } &sourcerer:before { content: "\e011"; } &tabs:before { content: "\e012"; } &tooltips:before { content: "\e014"; } } } } .icon-reglab-24 { &:before { vertical-align: -5px; @media screen and (-webkit-min-device-pixel-ratio: 0) { vertical-align: -3px; } } } [class^="icon-reglab-"], [class*=" icon-reglab-"] { &:before { font-family: 'RegularLabsIcons' !important; } } .icon-reglab- { ¶graph-left:before { content: "\e001"; } ¶graph-center:before { content: "\e002"; } ¶graph-right:before { content: "\e003"; } ¶graph-justify:before { content: "\e004"; } &undo:before { content: "\e005"; } &redo:before { content: "\e006"; } &spinner:before { content: "\e007"; } &lock:before { content: "\e008"; } &unlocked:before { content: "\e009"; } &cog:before { content: "\e00a"; } &arrow-up:before { content: "\e00b"; } &arrow-right:before { content: "\e00c"; } &arrow-down:before { content: "\e00d"; } &arrow-left:before { content: "\e00e"; } &top:before { content: "\e00f"; } &bottom:before { content: "\e010"; } &simple:before { content: "\e011"; } &normal:before { content: "\e012"; } &advanced:before { content: "\e013"; } &home:before { content: "\e014"; } &info:before { content: "\e015"; } &warning:before { content: "\e016"; } ¬-ok:before { content: "\e017"; } &link:before { content: "\e018"; } &eye:before { content: "\e019"; } &search:before { content: "\e01a"; } &earth:before { content: "\e01f"; } &src_sourcetags:before { content: "\e01b"; } &src_nosourcetags:before { content: "\e01c"; } &src_tagstyle:before { content: "\e01d"; } &src_tagstyle_brackets:before { content: "\e01e"; } &bundle:before { content: "\e021"; } &lifetime:before { content: "\e022"; } &twitter:before { content: "\e030"; } &google-plus:before { content: "\e031"; } &facebook:before { content: "\e032"; } &joomla:before { content: "\e033"; } } .icon-reglab.icon- { &src_sourcetags:before { font-family: 'RegularLabsIcons' !important; content: "\e01b"; } &src_nosourcetags:before { font-family: 'RegularLabsIcons' !important; content: "\e01c"; } &src_tagstyle:before { font-family: 'RegularLabsIcons' !important; content: "\e01d"; } &src_tagstyle_brackets:before { font-family: 'RegularLabsIcons' !important; content: "\e01e"; } } .icon-expired:before { content: "\6e"; } color.less 0000604 00000014304 15245657416 0006567 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /** * BASED ON: * jQuery MiniColors: A tiny color picker built on jQuery * Copyright Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/) * Dual-licensed under the MIT and GPL Version 2 licenses */ @import "init.less"; .minicolors { position: relative; display: inline-block; z-index: 11; } .minicolors-focus { z-index: 12; } .minicolors.minicolors-theme-default .minicolors-input { margin: 0; border: solid 1px #cccccc; font: 14px sans-serif; width: 65px; height: 16px; .border-radius(0); .box-shadow(~"inset 0 2px 4px rgba(0, 0, 0, .04)"); padding: 2px; margin-right: -1px; } .minicolors-theme-default.minicolors .minicolors-input { vertical-align: middle; outline: none; } .minicolors-theme-default.minicolors-swatch-left .minicolors-input { margin-left: -1px; margin-right: auto; } .minicolors-theme-default.minicolors-focus .minicolors-input, .minicolors-theme-default.minicolors-focus .minicolors-swatch { border-color: #999999; } .minicolors-hidden { position: absolute; left: -9999em; } .minicolors-swatch { position: relative; width: 20px; height: 20px; text-align: left; background: url(../images/minicolors.png) -80px 0; border: solid 1px #cccccc; vertical-align: middle; display: inline-block; } .minicolors-swatch span { position: absolute; width: 100%; height: 100%; background: none; .box-shadow(~"inset 0 9px 0 rgba(255, 255, 255, .1)"); display: inline-block; } // Panel .minicolors-panel { position: absolute; top: 26px; left: 0; width: 173px; height: 152px; background: white; border: solid 1px #cccccc; .box-shadow(~"0 0 20px rgba(0, 0, 0, .2)"); display: none; } .minicolors-position-top .minicolors-panel { top: -156px; } .minicolors-position-left .minicolors-panel { left: -83px; } .minicolors-position-left.minicolors-with-opacity .minicolors-panel { left: -104px; } .minicolors-with-opacity .minicolors-panel { width: 194px; } .minicolors .minicolors-grid { position: absolute; top: 1px; left: 1px; width: 150px; height: 150px; background: url(../images/minicolors.png) -120px 0; cursor: crosshair; } .minicolors .minicolors-grid-inner { position: absolute; top: 0; left: 0; width: 150px; height: 150px; background: none; } .minicolors-slider-saturation .minicolors-grid { background-position: -420px 0; } .minicolors-slider-saturation .minicolors-grid-inner { background: url(../images/minicolors.png) -270px 0; } .minicolors-slider-brightness .minicolors-grid { background-position: -570px 0; } .minicolors-slider-brightness .minicolors-grid-inner { background: black; } .minicolors-slider-wheel .minicolors-grid { background-position: -720px 0; } .minicolors-slider, .minicolors-opacity-slider { position: absolute; top: 1px; left: 152px; width: 20px; height: 150px; background: white url(../images/minicolors.png) 0 0; cursor: crosshair; } .minicolors-slider-saturation .minicolors-slider { background-position: -60px 0; } .minicolors-slider-brightness .minicolors-slider { background-position: -20px 0; } .minicolors-slider-wheel .minicolors-slider { background-position: -20px 0; } .minicolors-opacity-slider { left: 173px; background-position: -40px 0; display: none; } .minicolors-with-opacity .minicolors-opacity-slider { display: block; } // Pickers .minicolors-grid .minicolors-picker { position: absolute; top: 70px; left: 70px; width: 10px; height: 10px; border: solid 1px black; .border-radius(10px); margin-top: -6px; margin-left: -6px; background: none; } .minicolors-grid .minicolors-picker span { position: absolute; top: 0; left: 0; width: 6px; height: 6px; .border-radius(6px); border: solid 2px white; } .minicolors-picker { position: absolute; top: 0; left: 0; width: 18px; height: 2px; background: white; border: solid 1px black; margin-top: -2px; } // Inline controls .minicolors-inline .minicolors-input, .minicolors-inline .minicolors-swatch { display: none; } .minicolors-inline .minicolors-panel { position: relative; top: auto; left: auto; display: inline-block; } // Bootstrap Theme (theme: 'bootstrap') // Input styles .minicolors-theme-bootstrap .minicolors-input { padding: 4px 6px; padding-left: 30px; background-color: white; border: 1px solid #cccccc; .border-radius(3px); color: #555555; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 14px; height: 19px; margin: 0; .box-shadow(~"inset 0 1px 1px rgba(0, 0, 0, 0.075)"); } // When the input has focus .minicolors-theme-bootstrap.minicolors-focus .minicolors-input { border-color: #6fb8f1; .box-shadow(~"0 0 10px #6fb8f1"); outline: none; } // Swatch styles .minicolors-theme-bootstrap .minicolors-swatch { position: absolute; left: 4px; top: 4px; z-index: 12; } // Handle swatch position (left = default / right) .minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-input { padding-left: 6px; padding-right: 30px; } .minicolors-theme-bootstrap.minicolors-swatch-position-right .minicolors-swatch { left: auto; right: 4px; } // Panel styles .minicolors-theme-bootstrap .minicolors-panel { top: 28px; z-index: 13; } // Handle panel positions (top / left) .minicolors-theme-bootstrap.minicolors-position-top .minicolors-panel { top: -154px; } .minicolors-theme-bootstrap.minicolors-position-left .minicolors-panel { left: -63px; } // Don't forget to adjust the left position in case the opacity slider is visible! .minicolors-theme-bootstrap.minicolors-position-left.minicolors-with-opacity .minicolors-panel { left: -84px; } colorpicker.less 0000604 00000004035 15245657416 0007765 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /** * LOOSELY BASED ON: * Very simple jQuery Color Picker * Copyright (C) 2012 Tanguy Krotoff * Licensed under the MIT license */ @import "init.less"; .rl_colorpicker-swatch { cursor: pointer; position: relative; width: 20px; height: 20px; text-align: left; background: url(../images/minicolors.png) -80px 0; border: solid 1px #cccccc; vertical-align: middle; display: inline-block; .border-radius(3px); overflow: hidden; } .rl_colorpicker-swatch span { position: absolute; width: 100%; height: 100%; background: none; .box-shadow(~"inset 0 9px 0 rgba(255, 255, 255, .1)"); display: inline-block; } .rl_colorpicker-panel .rl_colorpicker-swatch { margin: 0 4px 4px 0; } .rl_colorpicker-swatch.active, .rl_colorpicker-swatch:hover, .rl_colorpicker-swatch:focus, .rl_colorpicker-swatch span:focus { outline: 0; outline: thin dotted \9; /* IE6-9 */ } .rl_colorpicker-swatch:hover, .rl_colorpicker-swatch.active { border-color: rgba(82, 168, 236, 0.8); .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)"); } .rl_colorpicker-panel { position: absolute; top: 100%; left: 0; z-index: 10; display: none; float: left; padding: 6px 2px 2px 6px; margin: 1px 0 0; list-style: none; background-color: #ffffff; border: 1px solid #dddddd; *border-right-width: 2px; *border-bottom-width: 2px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; .box-shadow(~"0 5px 10px rgba(0, 0, 0, 0.2)"); .background-clip(padding-box); } multiselect.less 0000604 00000001626 15245657416 0010006 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ div.rl_multiselect { margin-bottom: 0; .rl_multiselect-controls { clear: both; } ul.rl_multiselect-ul { margin: 0; padding: 0; margin-top: 8px; li { margin: 0; padding: 2px 10px 2px; list-style: none; } span.rl_multiselect-toggle { line-height: 18px; } label { font-size: 1em; margin-left: 8px; &.nav-header { padding: 0; } } input { margin: 2px 0 0 8px; } .rl_multiselect-menu { margin: 0 6px; } ul.dropdown-menu { margin: 0; li { padding: 0 5px; border: none; } } } } frontend.less 0000604 00000004174 15245657416 0007274 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ @import "../../jui/less/mixins.less"; @import "../../jui/less/variables.less"; @import "../../jui/less/grid.less"; @import "../../jui/less/forms.less"; @import "../../jui/less/dropdowns.less"; @import "../../jui/less/wells.less"; @import "../../jui/less/component-animations.less"; @import "../../jui/less/close.less"; @import "../../jui/less/buttons.less"; @import "../../jui/less/button-groups.less"; @import "../../jui/less/alerts.less"; @import "../../jui/less/tooltip.less"; @import "../../jui/less/accordion.less"; @import "../../jui/less/utilities.less"; @import "../../jui/less/bootstrap-extended.less"; @import "../../../administrator/templates/isis/less/icomoon.less"; @import "multiselect.less"; /* Chosen color styles */ [class^="chzn-color"].chzn-single, [class*=" chzn-color"].chzn-single, [class^="chzn-color"].chzn-single .chzn-single-with-drop, [class*=" chzn-color"].chzn-single .chzn-single-with-drop { .box-shadow(none); } .chzn-color.chzn-single[rel="value_1"], .chzn-color-reverse.chzn-single[rel="value_0"], .chzn-color-state.chzn-single[rel="value_1"] { .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight); } .chzn-color.chzn-single[rel="value_0"], .chzn-color-reverse.chzn-single[rel="value_1"], .chzn-color-state.chzn-single[rel="value_0"], .chzn-color-state.chzn-single[rel="value_-1"], .chzn-color-state.chzn-single[rel="value_-2"] { .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight); } /* Min-width on buttons */ .controls .btn-group > .btn { min-width: 50px; } .controls .btn-group.btn-group-yesno > .btn { min-width: 84px; padding: 2px 12px; } .control-label { > label { > h4 { margin-bottom: 0; } } } .controls { > fieldset { margin-bottom: 0; padding-top: 0; padding-bottom: 0; } } .chzn-container .chzn-drop { z-index: 1040; } init.less 0000604 00000000061 15245657416 0006407 0 ustar 00 @import "variables.less"; @import "mixins.less"; codemirror.less 0000604 00000001774 15245657416 0007625 0 ustar 00 /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ @import "init.less"; .rl_codemirror { .CodeMirror { height: 100px; min-height: 100px; max-height: none; padding-bottom: 15px; } .cm-resize-handle { position: relative; background: #f7f7f7; height: 15px; user-select: none; cursor: ns-resize; border-top: 1px solid #cccccc; border-bottom: 1px solid #cccccc; z-index: 2; &:before { position: absolute; left: 50%; content: '\2261'; /* https://en.wikipedia.org/wiki/Triple_bar */ color: #999999; line-height: 13px; font-size: 15px; } &:hover { background: #f0f0f0; } &:hover:before { color: black; } } } legacy-navigation.less 0000604 00000003726 15245667602 0011056 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // ------------------------------------------------------ // LEGACY NAVIGATION ELEMENTS // ------------------------------------------------------ // T3 Note: Extend BS3 Dropdown Menu to multi level // Dropdown Sub Menus // ------------------ .dropdown-submenu { position: relative; } // Default dropdowns .dropdown-submenu > .dropdown-menu { top: 0; left: 100%; margin-top: -5px; margin-left: -1px; } .dropdown-submenu.open > .dropdown-menu { display: block; } // The Sub Menus // ------------------ .dropdown-submenu > .dropdown-menu { border-radius: @border-radius-base; } // Caret to indicate there is a submenu .dropdown-submenu > a:after { display: block; content: " "; float: right; width: 0; height: 0; border-color: transparent; border-style: solid; border-width: 5px 0 5px 5px; border-left-color: darken(@dropdown-bg, 20%); margin-top: 5px; margin-right: -5px; } .dropdown-submenu.open > a:after { border-left-color: @dropdown-link-hover-color; } /* // // Hide the submenu on Touch Devices @media screen and (max-width: @screen-xs-max) { .dropdown-submenu > .dropdown-menu { display: none !important; } .dropdown-submenu > a:after { display: none !important; } } */ legacy-grid.less 0000604 00000010355 15245667602 0007640 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Prevent Bootstrap Upgrading errors @import "../bootstrap/less/variables.less"; // Bootstrap mixins @import "../bootstrap/less/mixins.less"; // T3 Base variables @import "variables.less"; // T3 Base mixins @import "mixins.less"; /** * Grid system * --------------------------------------------------*/ //mixins .legacy-make-grid-columns() { // Common styles for all sizes of grid columns, widths 1-12 .legacy-span(@index) when (@index = 1) { // initial @item: ~".span@{index}"; .legacy-span(@index + 1, @item); } .legacy-span(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo @item: ~".span@{index}"; .legacy-span(@index + 1, ~"@{list}, @{item}"); } .legacy-span(@index, @list) when (@index > @grid-columns) { // terminal @{list} { position: relative; // Prevent columns from collapsing when empty min-height: 1px; // Inner gutter via padding padding-left: (@grid-gutter-width / 2); padding-right: (@grid-gutter-width / 2); } } .legacy-span(1); // kickstart it } .legacy-calc-grid(@index, @type) when (@type = width) and (@index > 0) { .span@{index} { width: percentage((@index / @grid-columns)); } } .legacy-calc-grid(@index, @type) when (@type = offset) { .offset@{index} { margin-left: percentage((@index / @grid-columns)); } } // Basic looping in LESS .legacy-make-grid(@index, @type) when (@index >= 0) { .legacy-calc-grid(@index, @type); // next iteration .legacy-make-grid(@index - 1, @type); } // Style //---------------------------------------------------------------------- .row-flex { display: flex; flex-wrap: wrap; align-items: stretch; } //same as row .row-fluid { .make-row(); } // float left all span block [class*="span"]{ float:left; } // apply grid to span .legacy-make-grid-columns(); .legacy-make-grid(@grid-columns, width); .legacy-make-grid(@grid-columns, offset); // responsive utility // For desktops .visible-phone { display: none !important; } .visible-tablet { display: none !important; } .hidden-phone { } .hidden-tablet { } .hidden-desktop { display: none !important; } .visible-desktop { display: inherit !important; } // Tablets & small desktops only @media (min-width: 768px) and (max-width: 979px) { // Hide everything else .hidden-desktop { display: inherit !important; } .visible-desktop { display: none !important ; } // Show .visible-tablet { display: inherit !important; } // Hide .hidden-tablet { display: none !important; } } // Phones only @media (max-width: 767px) { // Hide everything else .hidden-desktop { display: inherit !important; } .visible-desktop { display: none !important; } // Show .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior // Hide .hidden-phone { display: none !important; } } // Specific Joomla! Widths //---------------------------------------------------------------------- // Specific Joomla! Widths .width-10 { width: 10px; } .width-20 { width: 20px; } .width-30 { width: 30px; } .width-40 { width: 40px; } .width-50 { width: 50px; } .width-60 { width: 60px; } .width-70 { width: 70px; } .width-80 { width: 80px; } .width-90 { width: 90px; } .width-100 { width: 100px; } // Specific Joomla! Heights .height-10 { height: 10px; } .height-20 { height: 20px; } .height-30 { height: 30px; } .height-40 { height: 40px; } .height-50 { height: 50px; } .height-60 { height: 60px; } .height-70 { height: 70px; } .height-80 { height: 80px; } .height-90 { height: 90px; } .height-100 { height: 100px; } legacy_j4.less 0000604 00000023034 15245667602 0007310 0 ustar 00 // BOOTSTRAP LEGACY // ---------------------------------- .sr-only, .visually-hidden, .visually-hidden-focusable:not(:focus):not(:focus-within) { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } .btn-close { background: #f0f0f0; border: 0; border-radius: 50%; color: #999; height: 32px; text-align: center; width: 32px; margin-left: auto; appearance: none; -moz-appearance: none; -webkit-appearance: none; &::before { content: "\f00d"; display: block; font-family: FontAwesome3 !important; font-size: 16px; } &:hover { cursor: pointer; color: #666; } } // Calendar field .field-calendar { .input-group { input[type="text"] { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } } a { &:hover, &:focus, &:active { cursor: pointer; } } } joomla-field-custom.field-custom-wrapper { .input-group { display: flex; align-items: stretch; input[type="text"] { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-group-btn { display: flex; align-items: stretch; .btn { border-radius: 0; &.button-select { background-color: #2f7d32; border-color: #2f7d32; &:hover, &:focus, &:active { background-color: #296e2c; border-color: #296e2c; } } &.button-clear { background-color: #c52827; border: 1px solid #c52827; border-top-right-radius: 5px; border-bottom-right-radius: 5px; color: #fff; &:hover, &:focus, &:active { background-color: #ae2322; border-color: #c52827; } } span { line-height: 38px; } } } } } // Input group // ----------- .input-group { position: relative; display: flex; flex-wrap: nowrap; align-items: stretch; width: 100%; .form-control { width: auto; } .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } } // Tag category .com-tags-tag.tag-category { .filters { display: flex; align-items: center; } } .users-profile-custom-joomlatoken { .dl-horizontal { dd { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 400px; } } } // Smart search // ------------ .com-finder { .form-inline > label { margin-bottom: @t3-global-margin / 2; } .input-group { display: flex; align-items: center; .btn:last-of-type { border-radius: 5px; margin-left: @t3-global-margin / 2; } } } // Compatible with Joomla 4 .j40 { // Media field joomla-field-media { .input-group { max-width: 356px; input[type="text"] { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; } .form-control { border-top-left-radius: 0; flex: 1; } .btn { border-top-right-radius: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; } .icon-times::before { content: "\f00d"; display: inline-block; font-weight: FontAwesome; font-size: 16px; } } } // Control label .form-control-feedback { font-size: 12px; font-weight: 400; top: auto; bottom: -28px; line-height: 1; width: auto; white-space: nowrap; } // COMPONENTS // ---------------------- // Newsfeed .com-newsfeeds-newsfeed__items { margin: 0; padding: 0; list-style: none; li { border-bottom: 1px solid @t3-border-color; padding: @t3-global-padding 0; } .feed-link { margin-bottom: @t3-global-margin; } } figure { margin-bottom: @t3-global-margin; img { max-width: 100%; } } // Contact form #com-contact-form { margin-bottom: @t3-global-margin; } // Request confirm .request-confirm { fieldset { legend { font-size: 16px; padding-bottom: @t3-global-padding; } } } // Article assign .article-aside { .icons { float: right; a { display: block; position: relative; } [role="tooltip"] { background-color: rgba(0,0,0,0.6); border-radius: 3px; color: #fff; display: none; padding: 2px 4px; position: absolute; white-space: nowrap; right: 0; max-width: none; } &:hover { [role="tooltip"] { display: block; } } } } .password-group { .input-group { display: flex; flex-wrap: nowrap; input { width: auto; } } } // Edit article // ------------ .edit.item-page { .choices__inner { padding-right: 6px; button { background-color: rgba(255,255,255,0.3); border-radius: 8px; border: 0; margin-left: 6px; padding: 1px 6px; &:hover, &:focus, &:active { background-color: rgba(255,255,255,0.5); cursor: pointer; } } } } } // Edit profile // ------------ .profile-edit { .password-group .input-group input { min-width: 268px; } .control-group { margin-top: @t3-global-margin; .controls { float: none; } } } // Modal // ------------------- .j40, .j42 { .joomla-modal.show { background-color: rgba(0,0,0,0.5); opacity: 1; .modal-dialog { top: 50%; transform: translateY(-50%); .modal-content { border-radius: 5px; box-shadow: 0 0 5px rgba(0,0,0,0.1); } } } .jviewport-width80 { width: 80vw; } .jviewport-height70 { height: 70vh; } .modal-header { align-items: center; border-bottom: 1px solid #ddd; display: flex; padding: 12px 16px; justify-content: space-between; h3 { font-size: 24px; font-weight: 500; } } .modal-body { overflow: hidden; padding: 0; } .iframe { border: 0; height: 100%; width: 100%; } [role=tooltip]:not(.show) { right: 5em; z-index: 1070; display: none; max-width: 100%; padding: .5em; margin: .5em; color: #000; text-align: start; background: #fff; border: 1px solid #6d757e; border-radius: .25rem; } .container-popup [id="filter[search]-desc"] { top: 100%; bottom: auto; } } // Front-end edit // -------------- .j40 { .btn-toolbar, .js-stools-container-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; } .ordering-select { display: flex; align-items: center; } .btn-group { margin-right: @t3-global-margin / 2; } .js-stools-container-filters { display: none; margin-top: @t3-global-margin; &.js-stools-container-filters-visible { display: flex; } .js-stools-field-filter { margin-right: @t3-global-margin / 2; &:last-child { margin-right: 0; } } .choices { .choices__inner { border: 0; min-height: auto; padding: 0; input { margin-bottom: 0; } } } } #contact-form { label.required { position: relative; .form-control-feedback { background: #fff; border-radius: .5rem; box-shadow: 2px 2px 5px rgba(0,0,0,0.1); border: 1px solid #e5e7eb; display: flex; align-items: center; justify-content: center; padding: 0 .5rem; right: auto; left: calc(100% + 32px); bottom: calc(100% + 32px); } } } } .contentpane { .subhead { border-bottom: 1px solid #ddd; padding-bottom: 12px; .btn-toolbar { display: flex; gap: @t3-global-margin / 2; margin: 0; &::before, &::after { display: none; } } joomla-toolbar-button { } } .media-sidebar { border-right: 1px solid #ddd; } .media-toolbar { border-bottom: 1px solid #ddd; margin-right: 20px; padding-left: 20px; .media-toolbar-icon { border-left: 1px solid #ddd; } .icon-search-minus, .icon-search-plus { font-family: FontAwesome3; &::before { content: "\f010"; display: block; font-size: 16px; } } .icon-search-plus::before { content: "\f00e"; } } } .com_contact { fieldset.filters { display: flex; flex-wrap: wrap; justify-content: space-between; } .com-contact-featured__filter { display: flex; flex-wrap: wrap; } .display-limit { margin: 0; } table.category { margin-top: 2rem; } } layout-preview-variables.less 0000604 00000002060 15245667602 0012405 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // Extra small screen / phone @screen-xs: 450px; // Small screen / tablet @screen-sm: 500px; // Medium screen / desktop @screen-md: 600px; // Large screen / wide desktop @screen-lg: 720px; // Padding, to be divided by two and applied to the left and right of all columns @grid-gutter-width: 12px; legacy-forms.less 0000604 00000021567 15245667602 0010050 0 ustar 00 /** *------------------------------------------------------------------------------ * @package T3 Framework for Joomla! *------------------------------------------------------------------------------ * @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @authors JoomlArt, JoomlaBamboo, (contribute to this project at github * & Google group to become co-author) * @Google group: https://groups.google.com/forum/#!forum/t3fw * @Link: http://t3-framework.org *------------------------------------------------------------------------------ */ // ------------------------------------------------------ // LEGACY FORM ELEMENTS // ------------------------------------------------------ // // GENERIC STYLES // ------------------------------------------------------ // Common form controls // -------------------- // Legacy class below select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .inputbox { .form-control(); // Customize the `:focus` state to imitate native WebKit styles. .form-control-focus(); // Placeholder // // Placeholder text gets special styles because when browsers invalidate entire // lines if it doesn't understand a selector/ .placeholder(); // Disabled and read-only inputs // Note: HTML5 says that controls under a fieldset > legend:first-child won't // be disabled if the fieldset is disabled. Due to implementation difficulty, // we don't honor that edge case; we style them as disabled anyway. &[disabled], &[readonly], fieldset[disabled] & { cursor: not-allowed; background-color: @input-bg-disabled; } // Reset height for `textarea`s textarea& { height: auto; } // Reset Width for Legacy classes in Medium Screen @media screen and (min-width: @screen-sm) { width: auto; } } // Redefine padding for <select> select, select.form-control, select.inputbox, select.input { padding-right: 5px; } // LEGACY INPUT SIZES // ------------------- // General classes for quick sizes .input-mini { width: 60px; } .input-small { width: 90px; } .input-medium { width: 150px; } .input-large { width: 210px; } .input-xlarge { width: 270px; } .input-xxlarge { width: 530px; } // Redefind BS3 Input Sizes input.input-sm { .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); } input.input-lg { .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); } // Inline forms // // Make forms appear inline(-block) by adding the `.form-inline` class. Inline // forms begin stacked on extra small (mobile) devices and then go inline when // viewports reach <768px. // // Requires wrapping inputs and labels with `.form-group` for proper display of // default HTML form controls and our custom form controls (e.g., input groups). // // Heads up! This is mixin-ed into `.navbar-form` in navbars.less. .form-inline { // Kick in the inline @media (min-width: @screen-sm) { // Legacy class below .inputbox, select, textarea, input { display: inline-block; } } } // HORIZONTAL & VERTICAL FORMS // --------------------------- // Common properties // ----------------- // Margin to space out fieldsets .control-group { margin-bottom: @line-height-computed / 2; } // Legend collapses margin, so next element is responsible for spacing legend + .control-group { margin-top: @line-height-computed; -webkit-margin-top-collapse: separate; } // Horizontal-specific styles // -------------------------- .form-horizontal { .control-group { margin-bottom: @line-height-computed; .clearfix(); // Float the labels left .control-label { display: block; width: 100%; @media (min-width: @screen-sm-min) { display: inline-block; float: left; width: @component-offset-horizontal - 20; padding-top: 5px; text-align: right; } } // Move over all input controls and content .controls { margin-left: @component-offset-horizontal; } } } // // OTHER LEGACY CLASSES FROM BS2 // ------------------------------------------------------ // FORM ACTIONS // ------------ // Adding the legacy "form-actions" from BS2 .form-actions { .clearfix(); padding: @t3-global-padding; margin: @t3-global-margin 0; background-color: @gray-lighter; border-radius: @border-radius-base; // Reset the padding of offset col [class*="col-sm-offset-"], [class*="col-md-offset-"] { padding-left: 5px !important; } } // INPUT GROUPS // ------------ // Allow us to put symbols and text within the input field for a cleaner look .input-append, .input-prepend { display: inline-block; margin-bottom: @line-height-computed / 2; vertical-align: middle; font-size: 0; // white space collapse hack white-space: nowrap; // Prevent span and input from separating // Reset the white space collapse hack input, select, .uneditable-input, .dropdown-menu, .popover { font-size: @font-size-base; } input, select, .uneditable-input { position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms *margin-left: 0; vertical-align: top; border-radius: 0 @input-border-radius @input-border-radius 0; // Make input on top when focused so blue border and shadow always show &:focus { z-index: 2; } } .add-on { display: inline-block; width: auto; height: @input-height-base; min-width: 16px; padding: 4px 5px; font-size: @font-size-base; font-weight: normal; line-height: @line-height-base; text-align: center; background-color: @gray-lighter; border: 1px solid #ccc; } .add-on, .btn, .btn-group > .dropdown-toggle { vertical-align: top; border-radius: 0; } .active { background-color: lighten(@green, 30); border-color: @green; } } .input-prepend { .add-on, .btn { margin-right: -1px; } .add-on:first-child, .btn:first-child { // FYI, `.btn:first-child` accounts for a button group that's prepended border-radius: @input-border-radius 0 0 @input-border-radius; } } .input-append { input, select, .uneditable-input { border-radius: @input-border-radius 0 0 @input-border-radius; + .btn-group .btn:last-child { border-radius: 0 @input-border-radius @input-border-radius 0; } } .add-on, .btn, .btn-group { margin-left: -1px; } .add-on:last-child, .btn:last-child, .btn-group:last-child > .dropdown-toggle { border-radius: 0 @input-border-radius @input-border-radius 0; } } // Remove all border-radius for inputs with both prepend and append .input-prepend.input-append { input, select, .uneditable-input { border-radius: 0; + .btn-group .btn { border-radius: 0 @input-border-radius @input-border-radius 0; } } .add-on:first-child, .btn:first-child { margin-right: -1px; border-radius: @input-border-radius 0 0 @input-border-radius; } .add-on:last-child, .btn:last-child { margin-left: -1px; border-radius: 0 @input-border-radius @input-border-radius 0; } .btn-group:first-child { margin-left: 0; } } // // BUTTONS // ------------------------------------------------------ // Lagacy Button Sizes // -------------------------------------------------- // Large .btn-large { padding: @padding-large-vertical @padding-large-horizontal; font-size: @font-size-large; border-radius: @border-radius-large; } .btn-large [class^="icon-"], .btn-large [class*=" icon-"] { margin-top: 4px; } // Small .btn-small { padding: @padding-small-vertical @padding-small-horizontal; font-size: @font-size-small; border-radius: @border-radius-small; } .btn-small [class^="icon-"], .btn-small [class*=" icon-"] { margin-top: 0; } // Mini .btn-mini { padding: 2px 4px; font-size: @font-size-small; border-radius: @border-radius-small; } .btn-mini [class^="icon-"], .btn-mini [class*=" icon-"] { margin-top: -1px; } non-responsive-variables.less 0000604 00000000272 15245667602 0012401 0 ustar 00 // re-define variable for none responsive @screen-xs: 1px; @screen-sm: 2px; @screen-md: 3px; @screen-lg: 9999px; .csscomb.json 0000604 00000017643 15245700305 0007156 0 ustar 00 { "always-semicolon": true, "block-indent": 2, "color-case": "lower", "color-shorthand": true, "element-case": "lower", "eof-newline": true, "leading-zero": false, "remove-empty-rulesets": true, "space-after-colon": 1, "space-after-combinator": 1, "space-before-selector-delimiter": 0, "space-between-declarations": "\n", "space-after-opening-brace": "\n", "space-before-closing-brace": "\n", "space-before-colon": 0, "space-before-combinator": 1, "space-before-opening-brace": 1, "strip-spaces": true, "unitless-zero": true, "vendor-prefix-align": true, "sort-order": [ [ "position", "top", "right", "bottom", "left", "z-index", "display", "float", "width", "min-width", "max-width", "height", "min-height", "max-height", "-webkit-box-sizing", "-moz-box-sizing", "box-sizing", "-webkit-appearance", "padding", "padding-top", "padding-right", "padding-bottom", "padding-left", "margin", "margin-top", "margin-right", "margin-bottom", "margin-left", "overflow", "overflow-x", "overflow-y", "-webkit-overflow-scrolling", "-ms-overflow-x", "-ms-overflow-y", "-ms-overflow-style", "clip", "clear", "font", "font-family", "font-size", "font-style", "font-weight", "font-variant", "font-size-adjust", "font-stretch", "font-effect", "font-emphasize", "font-emphasize-position", "font-emphasize-style", "font-smooth", "-webkit-hyphens", "-moz-hyphens", "hyphens", "line-height", "color", "text-align", "-webkit-text-align-last", "-moz-text-align-last", "-ms-text-align-last", "text-align-last", "text-emphasis", "text-emphasis-color", "text-emphasis-style", "text-emphasis-position", "text-decoration", "text-indent", "text-justify", "text-outline", "-ms-text-overflow", "text-overflow", "text-overflow-ellipsis", "text-overflow-mode", "text-shadow", "text-transform", "text-wrap", "-webkit-text-size-adjust", "-ms-text-size-adjust", "letter-spacing", "-ms-word-break", "word-break", "word-spacing", "-ms-word-wrap", "word-wrap", "-moz-tab-size", "-o-tab-size", "tab-size", "white-space", "vertical-align", "list-style", "list-style-position", "list-style-type", "list-style-image", "pointer-events", "-ms-touch-action", "touch-action", "cursor", "visibility", "zoom", "flex-direction", "flex-order", "flex-pack", "flex-align", "table-layout", "empty-cells", "caption-side", "border-spacing", "border-collapse", "content", "quotes", "counter-reset", "counter-increment", "resize", "-webkit-user-select", "-moz-user-select", "-ms-user-select", "-o-user-select", "user-select", "nav-index", "nav-up", "nav-right", "nav-down", "nav-left", "background", "background-color", "background-image", "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", "filter:progid:DXImageTransform.Microsoft.gradient", "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", "filter", "background-repeat", "background-attachment", "background-position", "background-position-x", "background-position-y", "-webkit-background-clip", "-moz-background-clip", "background-clip", "background-origin", "-webkit-background-size", "-moz-background-size", "-o-background-size", "background-size", "border", "border-color", "border-style", "border-width", "border-top", "border-top-color", "border-top-style", "border-top-width", "border-right", "border-right-color", "border-right-style", "border-right-width", "border-bottom", "border-bottom-color", "border-bottom-style", "border-bottom-width", "border-left", "border-left-color", "border-left-style", "border-left-width", "border-radius", "border-top-left-radius", "border-top-right-radius", "border-bottom-right-radius", "border-bottom-left-radius", "-webkit-border-image", "-moz-border-image", "-o-border-image", "border-image", "-webkit-border-image-source", "-moz-border-image-source", "-o-border-image-source", "border-image-source", "-webkit-border-image-slice", "-moz-border-image-slice", "-o-border-image-slice", "border-image-slice", "-webkit-border-image-width", "-moz-border-image-width", "-o-border-image-width", "border-image-width", "-webkit-border-image-outset", "-moz-border-image-outset", "-o-border-image-outset", "border-image-outset", "-webkit-border-image-repeat", "-moz-border-image-repeat", "-o-border-image-repeat", "border-image-repeat", "outline", "outline-width", "outline-style", "outline-color", "outline-offset", "-webkit-box-shadow", "-moz-box-shadow", "box-shadow", "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", "opacity", "-ms-interpolation-mode", "-webkit-transition", "-moz-transition", "-ms-transition", "-o-transition", "transition", "-webkit-transition-delay", "-moz-transition-delay", "-ms-transition-delay", "-o-transition-delay", "transition-delay", "-webkit-transition-timing-function", "-moz-transition-timing-function", "-ms-transition-timing-function", "-o-transition-timing-function", "transition-timing-function", "-webkit-transition-duration", "-moz-transition-duration", "-ms-transition-duration", "-o-transition-duration", "transition-duration", "-webkit-transition-property", "-moz-transition-property", "-ms-transition-property", "-o-transition-property", "transition-property", "-webkit-transform", "-moz-transform", "-ms-transform", "-o-transform", "transform", "-webkit-transform-origin", "-moz-transform-origin", "-ms-transform-origin", "-o-transform-origin", "transform-origin", "-webkit-animation", "-moz-animation", "-ms-animation", "-o-animation", "animation", "-webkit-animation-name", "-moz-animation-name", "-ms-animation-name", "-o-animation-name", "animation-name", "-webkit-animation-duration", "-moz-animation-duration", "-ms-animation-duration", "-o-animation-duration", "animation-duration", "-webkit-animation-play-state", "-moz-animation-play-state", "-ms-animation-play-state", "-o-animation-play-state", "animation-play-state", "-webkit-animation-timing-function", "-moz-animation-timing-function", "-ms-animation-timing-function", "-o-animation-timing-function", "animation-timing-function", "-webkit-animation-delay", "-moz-animation-delay", "-ms-animation-delay", "-o-animation-delay", "animation-delay", "-webkit-animation-iteration-count", "-moz-animation-iteration-count", "-ms-animation-iteration-count", "-o-animation-iteration-count", "animation-iteration-count", "-webkit-animation-direction", "-moz-animation-direction", "-ms-animation-direction", "-o-animation-direction", "animation-direction" ] ] } panels.less 0000604 00000014405 15245700305 0006717 0 ustar 00 // stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, no-duplicate-selectors // // Panels // -------------------------------------------------- // Base class .panel { margin-bottom: @line-height-computed; background-color: @panel-bg; border: 1px solid transparent; border-radius: @panel-border-radius; .box-shadow(0 1px 1px rgba(0, 0, 0, .05)); } // Panel contents .panel-body { padding: @panel-body-padding; &:extend(.clearfix all); } // Optional heading .panel-heading { padding: @panel-heading-padding; border-bottom: 1px solid transparent; .border-top-radius((@panel-border-radius - 1)); > .dropdown .dropdown-toggle { color: inherit; } } // Within heading, strip any `h*` tag of its default margins for spacing. .panel-title { margin-top: 0; margin-bottom: 0; font-size: ceil((@font-size-base * 1.125)); color: inherit; > a, > small, > .small, > small > a, > .small > a { color: inherit; } } // Optional footer (stays gray in every modifier class) .panel-footer { padding: @panel-footer-padding; background-color: @panel-footer-bg; border-top: 1px solid @panel-inner-border; .border-bottom-radius((@panel-border-radius - 1)); } // List groups in panels // // By default, space out list group content from panel headings to account for // any kind of custom content between the two. .panel { > .list-group, > .panel-collapse > .list-group { margin-bottom: 0; .list-group-item { border-width: 1px 0; border-radius: 0; } // Add border top radius for first one &:first-child { .list-group-item:first-child { border-top: 0; .border-top-radius((@panel-border-radius - 1)); } } // Add border bottom radius for last one &:last-child { .list-group-item:last-child { border-bottom: 0; .border-bottom-radius((@panel-border-radius - 1)); } } } > .panel-heading + .panel-collapse > .list-group { .list-group-item:first-child { .border-top-radius(0); } } } // Collapse space between when there's no additional content. .panel-heading + .list-group { .list-group-item:first-child { border-top-width: 0; } } .list-group + .panel-footer { border-top-width: 0; } // Tables in panels // // Place a non-bordered `.table` within a panel (not within a `.panel-body`) and // watch it go full width. .panel { > .table, > .table-responsive > .table, > .panel-collapse > .table { margin-bottom: 0; caption { padding-right: @panel-body-padding; padding-left: @panel-body-padding; } } // Add border top radius for first one > .table:first-child, > .table-responsive:first-child > .table:first-child { .border-top-radius((@panel-border-radius - 1)); > thead:first-child, > tbody:first-child { > tr:first-child { border-top-left-radius: (@panel-border-radius - 1); border-top-right-radius: (@panel-border-radius - 1); td:first-child, th:first-child { border-top-left-radius: (@panel-border-radius - 1); } td:last-child, th:last-child { border-top-right-radius: (@panel-border-radius - 1); } } } } // Add border bottom radius for last one > .table:last-child, > .table-responsive:last-child > .table:last-child { .border-bottom-radius((@panel-border-radius - 1)); > tbody:last-child, > tfoot:last-child { > tr:last-child { border-bottom-right-radius: (@panel-border-radius - 1); border-bottom-left-radius: (@panel-border-radius - 1); td:first-child, th:first-child { border-bottom-left-radius: (@panel-border-radius - 1); } td:last-child, th:last-child { border-bottom-right-radius: (@panel-border-radius - 1); } } } } > .panel-body + .table, > .panel-body + .table-responsive, > .table + .panel-body, > .table-responsive + .panel-body { border-top: 1px solid @table-border-color; } > .table > tbody:first-child > tr:first-child th, > .table > tbody:first-child > tr:first-child td { border-top: 0; } > .table-bordered, > .table-responsive > .table-bordered { border: 0; > thead, > tbody, > tfoot { > tr { > th:first-child, > td:first-child { border-left: 0; } > th:last-child, > td:last-child { border-right: 0; } } } > thead, > tbody { > tr:first-child { > td, > th { border-bottom: 0; } } } > tbody, > tfoot { > tr:last-child { > td, > th { border-bottom: 0; } } } } > .table-responsive { margin-bottom: 0; border: 0; } } // Collapsible panels (aka, accordion) // // Wrap a series of panels in `.panel-group` to turn them into an accordion with // the help of our collapse JavaScript plugin. .panel-group { margin-bottom: @line-height-computed; // Tighten up margin so it's only between panels .panel { margin-bottom: 0; border-radius: @panel-border-radius; + .panel { margin-top: 5px; } } .panel-heading { border-bottom: 0; + .panel-collapse > .panel-body, + .panel-collapse > .list-group { border-top: 1px solid @panel-inner-border; } } .panel-footer { border-top: 0; + .panel-collapse .panel-body { border-bottom: 1px solid @panel-inner-border; } } } // Contextual variations .panel-default { .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border); } .panel-primary { .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border); } .panel-success { .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border); } .panel-info { .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border); } .panel-warning { .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border); } .panel-danger { .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border); } responsive-embed.less 0000604 00000001042 15245700305 0010675 0 ustar 00 // Embeds responsive // // Credit: Nicolas Gallagher and SUIT CSS. .embed-responsive { position: relative; display: block; height: 0; padding: 0; overflow: hidden; .embed-responsive-item, iframe, embed, object, video { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; border: 0; } } // Modifier class for 16:9 aspect ratio .embed-responsive-16by9 { padding-bottom: 56.25%; } // Modifier class for 4:3 aspect ratio .embed-responsive-4by3 { padding-bottom: 75%; } .csslintrc 0000604 00000000710 15245700305 0006544 0 ustar 00 { "adjoining-classes": false, "box-sizing": false, "box-model": false, "compatible-vendor-prefixes": false, "floats": false, "font-sizes": false, "gradients": false, "important": false, "known-properties": false, "outline-none": false, "qualified-headings": false, "regex-selectors": false, "shorthand": false, "text-indent": false, "unique-headings": false, "universal-selector": false, "unqualified-attributes": false } theme.less 0000604 00000020226 15245700305 0006535 0 ustar 00 // stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors /*! * Bootstrap v3.4.1 (https://getbootstrap.com/) * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ // // Load core variables and mixins // -------------------------------------------------- @import "variables.less"; @import "mixins.less"; // // Buttons // -------------------------------------------------- // Common styles .btn-default, .btn-primary, .btn-success, .btn-info, .btn-warning, .btn-danger { text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); .box-shadow(@shadow); // Reset the shadow &:active, &.active { .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); } &.disabled, &[disabled], fieldset[disabled] & { .box-shadow(none); } .badge { text-shadow: none; } } // Mixin for generating new styles .btn-styles(@btn-color: #555) { #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%)); .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620 background-repeat: repeat-x; border-color: darken(@btn-color, 14%); &:hover, &:focus { background-color: darken(@btn-color, 12%); background-position: 0 -15px; } &:active, &.active { background-color: darken(@btn-color, 12%); border-color: darken(@btn-color, 14%); } &.disabled, &[disabled], fieldset[disabled] & { &, &:hover, &:focus, &.focus, &:active, &.active { background-color: darken(@btn-color, 12%); background-image: none; } } } // Common styles .btn { // Remove the gradient for the pressed/active state &:active, &.active { background-image: none; } } // Apply the mixin to the buttons .btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } .btn-primary { .btn-styles(@btn-primary-bg); } .btn-success { .btn-styles(@btn-success-bg); } .btn-info { .btn-styles(@btn-info-bg); } .btn-warning { .btn-styles(@btn-warning-bg); } .btn-danger { .btn-styles(@btn-danger-bg); } // // Images // -------------------------------------------------- .thumbnail, .img-thumbnail { .box-shadow(0 1px 2px rgba(0, 0, 0, .075)); } // // Dropdowns // -------------------------------------------------- .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); background-color: darken(@dropdown-link-hover-bg, 5%); } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); background-color: darken(@dropdown-link-active-bg, 5%); } // // Navbar // -------------------------------------------------- // Default navbar .navbar-default { #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg); .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered border-radius: @navbar-border-radius; @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); .box-shadow(@shadow); .navbar-nav > .open > a, .navbar-nav > .active > a { #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%)); .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075)); } } .navbar-brand, .navbar-nav > li > a { text-shadow: 0 1px 0 rgba(255, 255, 255, .25); } // Inverted navbar .navbar-inverse { #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg); .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257 border-radius: @navbar-border-radius; .navbar-nav > .open > a, .navbar-nav > .active > a { #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%)); .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25)); } .navbar-brand, .navbar-nav > li > a { text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); } } // Undo rounded corners in static and fixed navbars .navbar-static-top, .navbar-fixed-top, .navbar-fixed-bottom { border-radius: 0; } // Fix active state of dropdown items in collapsed mode @media (max-width: @grid-float-breakpoint-max) { .navbar .navbar-nav .open .dropdown-menu > .active > a { &, &:hover, &:focus { color: #fff; #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); } } } // // Alerts // -------------------------------------------------- // Common styles .alert { text-shadow: 0 1px 0 rgba(255, 255, 255, .2); @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); .box-shadow(@shadow); } // Mixin for generating new styles .alert-styles(@color) { #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%)); border-color: darken(@color, 15%); } // Apply the mixin to the alerts .alert-success { .alert-styles(@alert-success-bg); } .alert-info { .alert-styles(@alert-info-bg); } .alert-warning { .alert-styles(@alert-warning-bg); } .alert-danger { .alert-styles(@alert-danger-bg); } // // Progress bars // -------------------------------------------------- // Give the progress background some depth .progress { #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg) } // Mixin for generating new styles .progress-bar-styles(@color) { #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%)); } // Apply the mixin to the progress bars .progress-bar { .progress-bar-styles(@progress-bar-bg); } .progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); } .progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); } .progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); } .progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); } // Reset the striped class because our mixins don't do multiple gradients and // the above custom styles override the new `.progress-bar-striped` in v3.2.0. .progress-bar-striped { #gradient > .striped(); } // // List groups // -------------------------------------------------- .list-group { border-radius: @border-radius-base; .box-shadow(0 1px 2px rgba(0, 0, 0, .075)); } .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%); #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%)); border-color: darken(@list-group-active-border, 7.5%); .badge { text-shadow: none; } } // // Panels // -------------------------------------------------- // Common styles .panel { .box-shadow(0 1px 2px rgba(0, 0, 0, .05)); } // Mixin for generating new styles .panel-heading-styles(@color) { #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%)); } // Apply the mixin to the panel headings only .panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); } .panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); } .panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); } .panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); } .panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); } .panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); } // // Wells // -------------------------------------------------- .well { #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg); border-color: darken(@well-bg, 10%); @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); .box-shadow(@shadow); } glyphicons.less 0000604 00000047014 15245700305 0007616 0 ustar 00 // stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword // // Glyphicons for Bootstrap // // Since icons are fonts, they can be placed anywhere text is placed and are // thus automatically sized to match the surrounding child. To use, create an // inline element with the appropriate classes, like so: // // <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a> // Import the fonts @font-face { font-family: "Glyphicons Halflings"; src: url("@{icon-font-path}@{icon-font-name}.eot"); src: url("@{icon-font-path}@{icon-font-name}.eot?#iefix") format("embedded-opentype"), url("@{icon-font-path}@{icon-font-name}.woff2") format("woff2"), url("@{icon-font-path}@{icon-font-name}.woff") format("woff"), url("@{icon-font-path}@{icon-font-name}.ttf") format("truetype"), url("@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}") format("svg"); } // Catchall baseclass .glyphicon { position: relative; top: 1px; display: inline-block; font-family: "Glyphicons Halflings"; font-style: normal; font-weight: 400; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } // Individual icons .glyphicon-asterisk { &:before { content: "\002a"; } } .glyphicon-plus { &:before { content: "\002b"; } } .glyphicon-euro, .glyphicon-eur { &:before { content: "\20ac"; } } .glyphicon-minus { &:before { content: "\2212"; } } .glyphicon-cloud { &:before { content: "\2601"; } } .glyphicon-envelope { &:before { content: "\2709"; } } .glyphicon-pencil { &:before { content: "\270f"; } } .glyphicon-glass { &:before { content: "\e001"; } } .glyphicon-music { &:before { content: "\e002"; } } .glyphicon-search { &:before { content: "\e003"; } } .glyphicon-heart { &:before { content: "\e005"; } } .glyphicon-star { &:before { content: "\e006"; } } .glyphicon-star-empty { &:before { content: "\e007"; } } .glyphicon-user { &:before { content: "\e008"; } } .glyphicon-film { &:before { content: "\e009"; } } .glyphicon-th-large { &:before { content: "\e010"; } } .glyphicon-th { &:before { content: "\e011"; } } .glyphicon-th-list { &:before { content: "\e012"; } } .glyphicon-ok { &:before { content: "\e013"; } } .glyphicon-remove { &:before { content: "\e014"; } } .glyphicon-zoom-in { &:before { content: "\e015"; } } .glyphicon-zoom-out { &:before { content: "\e016"; } } .glyphicon-off { &:before { content: "\e017"; } } .glyphicon-signal { &:before { content: "\e018"; } } .glyphicon-cog { &:before { content: "\e019"; } } .glyphicon-trash { &:before { content: "\e020"; } } .glyphicon-home { &:before { content: "\e021"; } } .glyphicon-file { &:before { content: "\e022"; } } .glyphicon-time { &:before { content: "\e023"; } } .glyphicon-road { &:before { content: "\e024"; } } .glyphicon-download-alt { &:before { content: "\e025"; } } .glyphicon-download { &:before { content: "\e026"; } } .glyphicon-upload { &:before { content: "\e027"; } } .glyphicon-inbox { &:before { content: "\e028"; } } .glyphicon-play-circle { &:before { content: "\e029"; } } .glyphicon-repeat { &:before { content: "\e030"; } } .glyphicon-refresh { &:before { content: "\e031"; } } .glyphicon-list-alt { &:before { content: "\e032"; } } .glyphicon-lock { &:before { content: "\e033"; } } .glyphicon-flag { &:before { content: "\e034"; } } .glyphicon-headphones { &:before { content: "\e035"; } } .glyphicon-volume-off { &:before { content: "\e036"; } } .glyphicon-volume-down { &:before { content: "\e037"; } } .glyphicon-volume-up { &:before { content: "\e038"; } } .glyphicon-qrcode { &:before { content: "\e039"; } } .glyphicon-barcode { &:before { content: "\e040"; } } .glyphicon-tag { &:before { content: "\e041"; } } .glyphicon-tags { &:before { content: "\e042"; } } .glyphicon-book { &:before { content: "\e043"; } } .glyphicon-bookmark { &:before { content: "\e044"; } } .glyphicon-print { &:before { content: "\e045"; } } .glyphicon-camera { &:before { content: "\e046"; } } .glyphicon-font { &:before { content: "\e047"; } } .glyphicon-bold { &:before { content: "\e048"; } } .glyphicon-italic { &:before { content: "\e049"; } } .glyphicon-text-height { &:before { content: "\e050"; } } .glyphicon-text-width { &:before { content: "\e051"; } } .glyphicon-align-left { &:before { content: "\e052"; } } .glyphicon-align-center { &:before { content: "\e053"; } } .glyphicon-align-right { &:before { content: "\e054"; } } .glyphicon-align-justify { &:before { content: "\e055"; } } .glyphicon-list { &:before { content: "\e056"; } } .glyphicon-indent-left { &:before { content: "\e057"; } } .glyphicon-indent-right { &:before { content: "\e058"; } } .glyphicon-facetime-video { &:before { content: "\e059"; } } .glyphicon-picture { &:before { content: "\e060"; } } .glyphicon-map-marker { &:before { content: "\e062"; } } .glyphicon-adjust { &:before { content: "\e063"; } } .glyphicon-tint { &:before { content: "\e064"; } } .glyphicon-edit { &:before { content: "\e065"; } } .glyphicon-share { &:before { content: "\e066"; } } .glyphicon-check { &:before { content: "\e067"; } } .glyphicon-move { &:before { content: "\e068"; } } .glyphicon-step-backward { &:before { content: "\e069"; } } .glyphicon-fast-backward { &:before { content: "\e070"; } } .glyphicon-backward { &:before { content: "\e071"; } } .glyphicon-play { &:before { content: "\e072"; } } .glyphicon-pause { &:before { content: "\e073"; } } .glyphicon-stop { &:before { content: "\e074"; } } .glyphicon-forward { &:before { content: "\e075"; } } .glyphicon-fast-forward { &:before { content: "\e076"; } } .glyphicon-step-forward { &:before { content: "\e077"; } } .glyphicon-eject { &:before { content: "\e078"; } } .glyphicon-chevron-left { &:before { content: "\e079"; } } .glyphicon-chevron-right { &:before { content: "\e080"; } } .glyphicon-plus-sign { &:before { content: "\e081"; } } .glyphicon-minus-sign { &:before { content: "\e082"; } } .glyphicon-remove-sign { &:before { content: "\e083"; } } .glyphicon-ok-sign { &:before { content: "\e084"; } } .glyphicon-question-sign { &:before { content: "\e085"; } } .glyphicon-info-sign { &:before { content: "\e086"; } } .glyphicon-screenshot { &:before { content: "\e087"; } } .glyphicon-remove-circle { &:before { content: "\e088"; } } .glyphicon-ok-circle { &:before { content: "\e089"; } } .glyphicon-ban-circle { &:before { content: "\e090"; } } .glyphicon-arrow-left { &:before { content: "\e091"; } } .glyphicon-arrow-right { &:before { content: "\e092"; } } .glyphicon-arrow-up { &:before { content: "\e093"; } } .glyphicon-arrow-down { &:before { content: "\e094"; } } .glyphicon-share-alt { &:before { content: "\e095"; } } .glyphicon-resize-full { &:before { content: "\e096"; } } .glyphicon-resize-small { &:before { content: "\e097"; } } .glyphicon-exclamation-sign { &:before { content: "\e101"; } } .glyphicon-gift { &:before { content: "\e102"; } } .glyphicon-leaf { &:before { content: "\e103"; } } .glyphicon-fire { &:before { content: "\e104"; } } .glyphicon-eye-open { &:before { content: "\e105"; } } .glyphicon-eye-close { &:before { content: "\e106"; } } .glyphicon-warning-sign { &:before { content: "\e107"; } } .glyphicon-plane { &:before { content: "\e108"; } } .glyphicon-calendar { &:before { content: "\e109"; } } .glyphicon-random { &:before { content: "\e110"; } } .glyphicon-comment { &:before { content: "\e111"; } } .glyphicon-magnet { &:before { content: "\e112"; } } .glyphicon-chevron-up { &:before { content: "\e113"; } } .glyphicon-chevron-down { &:before { content: "\e114"; } } .glyphicon-retweet { &:before { content: "\e115"; } } .glyphicon-shopping-cart { &:before { content: "\e116"; } } .glyphicon-folder-close { &:before { content: "\e117"; } } .glyphicon-folder-open { &:before { content: "\e118"; } } .glyphicon-resize-vertical { &:before { content: "\e119"; } } .glyphicon-resize-horizontal { &:before { content: "\e120"; } } .glyphicon-hdd { &:before { content: "\e121"; } } .glyphicon-bullhorn { &:before { content: "\e122"; } } .glyphicon-bell { &:before { content: "\e123"; } } .glyphicon-certificate { &:before { content: "\e124"; } } .glyphicon-thumbs-up { &:before { content: "\e125"; } } .glyphicon-thumbs-down { &:before { content: "\e126"; } } .glyphicon-hand-right { &:before { content: "\e127"; } } .glyphicon-hand-left { &:before { content: "\e128"; } } .glyphicon-hand-up { &:before { content: "\e129"; } } .glyphicon-hand-down { &:before { content: "\e130"; } } .glyphicon-circle-arrow-right { &:before { content: "\e131"; } } .glyphicon-circle-arrow-left { &:before { content: "\e132"; } } .glyphicon-circle-arrow-up { &:before { content: "\e133"; } } .glyphicon-circle-arrow-down { &:before { content: "\e134"; } } .glyphicon-globe { &:before { content: "\e135"; } } .glyphicon-wrench { &:before { content: "\e136"; } } .glyphicon-tasks { &:before { content: "\e137"; } } .glyphicon-filter { &:before { content: "\e138"; } } .glyphicon-briefcase { &:before { content: "\e139"; } } .glyphicon-fullscreen { &:before { content: "\e140"; } } .glyphicon-dashboard { &:before { content: "\e141"; } } .glyphicon-paperclip { &:before { content: "\e142"; } } .glyphicon-heart-empty { &:before { content: "\e143"; } } .glyphicon-link { &:before { content: "\e144"; } } .glyphicon-phone { &:before { content: "\e145"; } } .glyphicon-pushpin { &:before { content: "\e146"; } } .glyphicon-usd { &:before { content: "\e148"; } } .glyphicon-gbp { &:before { content: "\e149"; } } .glyphicon-sort { &:before { content: "\e150"; } } .glyphicon-sort-by-alphabet { &:before { content: "\e151"; } } .glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } } .glyphicon-sort-by-order { &:before { content: "\e153"; } } .glyphicon-sort-by-order-alt { &:before { content: "\e154"; } } .glyphicon-sort-by-attributes { &:before { content: "\e155"; } } .glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } } .glyphicon-unchecked { &:before { content: "\e157"; } } .glyphicon-expand { &:before { content: "\e158"; } } .glyphicon-collapse-down { &:before { content: "\e159"; } } .glyphicon-collapse-up { &:before { content: "\e160"; } } .glyphicon-log-in { &:before { content: "\e161"; } } .glyphicon-flash { &:before { content: "\e162"; } } .glyphicon-log-out { &:before { content: "\e163"; } } .glyphicon-new-window { &:before { content: "\e164"; } } .glyphicon-record { &:before { content: "\e165"; } } .glyphicon-save { &:before { content: "\e166"; } } .glyphicon-open { &:before { content: "\e167"; } } .glyphicon-saved { &:before { content: "\e168"; } } .glyphicon-import { &:before { content: "\e169"; } } .glyphicon-export { &:before { content: "\e170"; } } .glyphicon-send { &:before { content: "\e171"; } } .glyphicon-floppy-disk { &:before { content: "\e172"; } } .glyphicon-floppy-saved { &:before { content: "\e173"; } } .glyphicon-floppy-remove { &:before { content: "\e174"; } } .glyphicon-floppy-save { &:before { content: "\e175"; } } .glyphicon-floppy-open { &:before { content: "\e176"; } } .glyphicon-credit-card { &:before { content: "\e177"; } } .glyphicon-transfer { &:before { content: "\e178"; } } .glyphicon-cutlery { &:before { content: "\e179"; } } .glyphicon-header { &:before { content: "\e180"; } } .glyphicon-compressed { &:before { content: "\e181"; } } .glyphicon-earphone { &:before { content: "\e182"; } } .glyphicon-phone-alt { &:before { content: "\e183"; } } .glyphicon-tower { &:before { content: "\e184"; } } .glyphicon-stats { &:before { content: "\e185"; } } .glyphicon-sd-video { &:before { content: "\e186"; } } .glyphicon-hd-video { &:before { content: "\e187"; } } .glyphicon-subtitles { &:before { content: "\e188"; } } .glyphicon-sound-stereo { &:before { content: "\e189"; } } .glyphicon-sound-dolby { &:before { content: "\e190"; } } .glyphicon-sound-5-1 { &:before { content: "\e191"; } } .glyphicon-sound-6-1 { &:before { content: "\e192"; } } .glyphicon-sound-7-1 { &:before { content: "\e193"; } } .glyphicon-copyright-mark { &:before { content: "\e194"; } } .glyphicon-registration-mark { &:before { content: "\e195"; } } .glyphicon-cloud-download { &:before { content: "\e197"; } } .glyphicon-cloud-upload { &:before { content: "\e198"; } } .glyphicon-tree-conifer { &:before { content: "\e199"; } } .glyphicon-tree-deciduous { &:before { content: "\e200"; } } .glyphicon-cd { &:before { content: "\e201"; } } .glyphicon-save-file { &:before { content: "\e202"; } } .glyphicon-open-file { &:before { content: "\e203"; } } .glyphicon-level-up { &:before { content: "\e204"; } } .glyphicon-copy { &:before { content: "\e205"; } } .glyphicon-paste { &:before { content: "\e206"; } } // The following 2 Glyphicons are omitted for the time being because // they currently use Unicode codepoints that are outside the // Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle // non-BMP codepoints in CSS string escapes, and thus can't display these two icons. // Notably, the bug affects some older versions of the Android Browser. // More info: https://github.com/twbs/bootstrap/issues/10106 // .glyphicon-door { &:before { content: "\1f6aa"; } } // .glyphicon-key { &:before { content: "\1f511"; } } .glyphicon-alert { &:before { content: "\e209"; } } .glyphicon-equalizer { &:before { content: "\e210"; } } .glyphicon-king { &:before { content: "\e211"; } } .glyphicon-queen { &:before { content: "\e212"; } } .glyphicon-pawn { &:before { content: "\e213"; } } .glyphicon-bishop { &:before { content: "\e214"; } } .glyphicon-knight { &:before { content: "\e215"; } } .glyphicon-baby-formula { &:before { content: "\e216"; } } .glyphicon-tent { &:before { content: "\26fa"; } } .glyphicon-blackboard { &:before { content: "\e218"; } } .glyphicon-bed { &:before { content: "\e219"; } } .glyphicon-apple { &:before { content: "\f8ff"; } } .glyphicon-erase { &:before { content: "\e221"; } } .glyphicon-hourglass { &:before { content: "\231b"; } } .glyphicon-lamp { &:before { content: "\e223"; } } .glyphicon-duplicate { &:before { content: "\e224"; } } .glyphicon-piggy-bank { &:before { content: "\e225"; } } .glyphicon-scissors { &:before { content: "\e226"; } } .glyphicon-bitcoin { &:before { content: "\e227"; } } .glyphicon-btc { &:before { content: "\e227"; } } .glyphicon-xbt { &:before { content: "\e227"; } } .glyphicon-yen { &:before { content: "\00a5"; } } .glyphicon-jpy { &:before { content: "\00a5"; } } .glyphicon-ruble { &:before { content: "\20bd"; } } .glyphicon-rub { &:before { content: "\20bd"; } } .glyphicon-scale { &:before { content: "\e230"; } } .glyphicon-ice-lolly { &:before { content: "\e231"; } } .glyphicon-ice-lolly-tasted { &:before { content: "\e232"; } } .glyphicon-education { &:before { content: "\e233"; } } .glyphicon-option-horizontal { &:before { content: "\e234"; } } .glyphicon-option-vertical { &:before { content: "\e235"; } } .glyphicon-menu-hamburger { &:before { content: "\e236"; } } .glyphicon-modal-window { &:before { content: "\e237"; } } .glyphicon-oil { &:before { content: "\e238"; } } .glyphicon-grain { &:before { content: "\e239"; } } .glyphicon-sunglasses { &:before { content: "\e240"; } } .glyphicon-text-size { &:before { content: "\e241"; } } .glyphicon-text-color { &:before { content: "\e242"; } } .glyphicon-text-background { &:before { content: "\e243"; } } .glyphicon-object-align-top { &:before { content: "\e244"; } } .glyphicon-object-align-bottom { &:before { content: "\e245"; } } .glyphicon-object-align-horizontal{ &:before { content: "\e246"; } } .glyphicon-object-align-left { &:before { content: "\e247"; } } .glyphicon-object-align-vertical { &:before { content: "\e248"; } } .glyphicon-object-align-right { &:before { content: "\e249"; } } .glyphicon-triangle-right { &:before { content: "\e250"; } } .glyphicon-triangle-left { &:before { content: "\e251"; } } .glyphicon-triangle-bottom { &:before { content: "\e252"; } } .glyphicon-triangle-top { &:before { content: "\e253"; } } .glyphicon-console { &:before { content: "\e254"; } } .glyphicon-superscript { &:before { content: "\e255"; } } .glyphicon-subscript { &:before { content: "\e256"; } } .glyphicon-menu-left { &:before { content: "\e257"; } } .glyphicon-menu-right { &:before { content: "\e258"; } } .glyphicon-menu-down { &:before { content: "\e259"; } } .glyphicon-menu-up { &:before { content: "\e260"; } } normalize.less 0000604 00000017061 15245700305 0007436 0 ustar 00 // stylelint-disable /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ // // 1. Set default font family to sans-serif. // 2. Prevent iOS and IE text size adjust after device orientation change, // without disabling user zoom. // html { font-family: sans-serif; // 1 -ms-text-size-adjust: 100%; // 2 -webkit-text-size-adjust: 100%; // 2 } // // Remove default margin. // body { margin: 0; } // HTML5 display definitions // ========================================================================== // // 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, hgroup, main, menu, nav, section, summary { display: block; } // // 1. Correct `inline-block` display not defined in IE 8/9. // 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. // audio, canvas, progress, video { display: inline-block; // 1 vertical-align: baseline; // 2 } // // Prevent modern browsers from displaying `audio` without controls. // Remove excess height in iOS 5 devices. // audio:not([controls]) { display: none; height: 0; } // // 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; } // Links // ========================================================================== // // Remove the gray background color from active links in IE 10. // a { background-color: transparent; } // // Improve readability of focused elements when they are also in an // active/hover state. // a:active, a:hover { outline: 0; } // Text-level semantics // ========================================================================== // // 1. Remove the bottom border in Chrome 57- and Firefox 39-. // 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. // abbr[title] { border-bottom: none; // 1 text-decoration: underline; // 2 text-decoration: underline dotted; // 2 } // // Address style set to `bolder` in Firefox 4+, Safari, and Chrome. // b, strong { font-weight: bold; } // // Address styling not present in Safari and Chrome. // dfn { font-style: italic; } // // Address variable `h1` font-size and margin within `section` and `article` // contexts in Firefox 4+, Safari, and Chrome. // h1 { font-size: 2em; margin: 0.67em 0; } // // Address styling not present in IE 8/9. // mark { background: #ff0; color: #000; } // // Address inconsistent and variable font size in all browsers. // small { font-size: 80%; } // // Prevent `sub` and `sup` affecting `line-height` in all browsers. // sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } // Embedded content // ========================================================================== // // Remove border when inside `a` element in IE 8/9/10. // img { border: 0; } // // Correct overflow not hidden in IE 9/10/11. // svg:not(:root) { overflow: hidden; } // Grouping content // ========================================================================== // // Address margin not present in IE 8/9 and Safari. // figure { margin: 1em 40px; } // // Address differences between Firefox and other browsers. // hr { box-sizing: content-box; height: 0; } // // Contain overflow in all browsers. // pre { overflow: auto; } // // Address odd `em`-unit font size rendering in all browsers. // code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } // Forms // ========================================================================== // // Known limitation: by default, Chrome and Safari on OS X allow very limited // styling of `select`, unless a `border` property is set. // // // 1. Correct color not being inherited. // Known issue: affects color of disabled elements. // 2. Correct font properties not being inherited. // 3. Address margins set differently in Firefox 4+, Safari, and Chrome. // button, input, optgroup, select, textarea { color: inherit; // 1 font: inherit; // 2 margin: 0; // 3 } // // Address `overflow` set to `hidden` in IE 8/9/10/11. // button { overflow: visible; } // // Address inconsistent `text-transform` inheritance for `button` and `select`. // All other form control elements do not inherit `text-transform` values. // Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. // Correct `select` style inheritance in Firefox. // button, select { text-transform: none; } // // 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` // and `video` controls. // 2. Correct inability to style clickable `input` types in iOS. // 3. Improve usability and consistency of cursor style between image-type // `input` and others. // button, html input[type="button"], // 1 input[type="reset"], input[type="submit"] { -webkit-appearance: button; // 2 cursor: pointer; // 3 } // // Re-set default cursor for disabled elements. // button[disabled], html input[disabled] { cursor: default; } // // Remove inner padding and border in Firefox 4+. // button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } // // Address Firefox 4+ setting `line-height` on `input` using `!important` in // the UA stylesheet. // input { line-height: normal; } // // It's recommended that you don't attempt to style these elements. // Firefox's implementation doesn't respect box-sizing, padding, or width. // // 1. Address box sizing set to `content-box` in IE 8/9/10. // 2. Remove excess padding in IE 8/9/10. // input[type="checkbox"], input[type="radio"] { box-sizing: border-box; // 1 padding: 0; // 2 } // // 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`. // input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } // // 1. Address `appearance` set to `searchfield` in Safari and Chrome. // 2. Address `box-sizing` set to `border-box` in Safari and Chrome. // input[type="search"] { -webkit-appearance: textfield; // 1 box-sizing: content-box; //2 } // // Remove inner padding and search cancel button in Safari and Chrome on OS X. // Safari (but not Chrome) clips the cancel button when the search input has // padding (and `textfield` appearance). // input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } // // Define consistent border, margin, and padding. // fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } // // 1. Correct `color` not being inherited in IE 8/9/10/11. // 2. Remove padding so people aren't caught out if they zero out fieldsets. // legend { border: 0; // 1 padding: 0; // 2 } // // Remove default vertical scrollbar in IE 8/9/10/11. // textarea { overflow: auto; } // // Don't inherit the `font-weight` (applied by a rule above). // NOTE: the default cannot safely be changed in Chrome and Safari on OS X. // optgroup { font-weight: bold; } // Tables // ========================================================================== // // Remove most spacing between table cells. // table { border-collapse: collapse; border-spacing: 0; } td, th { padding: 0; } input-groups.less 0000604 00000010354 15245700305 0010110 0 ustar 00 // stylelint-disable selector-no-qualifying-type // // Input groups // -------------------------------------------------- // Base styles // ------------------------- .input-group { position: relative; // For dropdowns display: table; border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table // Undo padding and float of grid classes &[class*="col-"] { float: none; padding-right: 0; padding-left: 0; } .form-control { // Ensure that the input is always above the *appended* addon button for // proper border colors. position: relative; z-index: 2; // IE9 fubars the placeholder attribute in text inputs and the arrows on // select elements in input groups. To fix it, we float the input. Details: // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855 float: left; width: 100%; margin-bottom: 0; &:focus { z-index: 3; } } } // Sizing options // // Remix the default form control sizing classes into new ones for easier // manipulation. .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { .input-lg(); } .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { .input-sm(); } // Display as table-cell // ------------------------- .input-group-addon, .input-group-btn, .input-group .form-control { display: table-cell; &:not(:first-child):not(:last-child) { border-radius: 0; } } // Addon and addon wrapper for buttons .input-group-addon, .input-group-btn { width: 1%; white-space: nowrap; vertical-align: middle; // Match the inputs } // Text input groups // ------------------------- .input-group-addon { padding: @padding-base-vertical @padding-base-horizontal; font-size: @font-size-base; font-weight: 400; line-height: 1; color: @input-color; text-align: center; background-color: @input-group-addon-bg; border: 1px solid @input-group-addon-border-color; border-radius: @input-border-radius; // Sizing &.input-sm { padding: @padding-small-vertical @padding-small-horizontal; font-size: @font-size-small; border-radius: @input-border-radius-small; } &.input-lg { padding: @padding-large-vertical @padding-large-horizontal; font-size: @font-size-large; border-radius: @input-border-radius-large; } // Nuke default margins from checkboxes and radios to vertically center within. input[type="radio"], input[type="checkbox"] { margin-top: 0; } } // Reset rounded corners .input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { .border-right-radius(0); } .input-group-addon:first-child { border-right: 0; } .input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { .border-left-radius(0); } .input-group-addon:last-child { border-left: 0; } // Button input groups // ------------------------- .input-group-btn { position: relative; // Jankily prevent input button groups from wrapping with `white-space` and // `font-size` in combination with `inline-block` on buttons. font-size: 0; white-space: nowrap; // Negative margin for spacing, position for bringing hovered/focused/actived // element above the siblings. > .btn { position: relative; + .btn { margin-left: -1px; } // Bring the "active" button to the front &:hover, &:focus, &:active { z-index: 2; } } // Negative margin to only have a 1px border between the two &:first-child { > .btn, > .btn-group { margin-right: -1px; } } &:last-child { > .btn, > .btn-group { z-index: 2; margin-left: -1px; } } } list-group.less 0000604 00000006121 15245700305 0007536 0 ustar 00 // stylelint-disable selector-no-qualifying-type // // List groups // -------------------------------------------------- // Base class // // Easily usable on <ul>, <ol>, or <div>. .list-group { // No need to set list-style: none; since .list-group-item is block level padding-left: 0; // reset padding because ul and ol margin-bottom: 20px; } // Individual list items // // Use on `li`s or `div`s within the `.list-group` parent. .list-group-item { position: relative; display: block; padding: 10px 15px; // Place the border on the list items and negative margin up for better styling margin-bottom: -1px; background-color: @list-group-bg; border: 1px solid @list-group-border; // Round the first and last items &:first-child { .border-top-radius(@list-group-border-radius); } &:last-child { margin-bottom: 0; .border-bottom-radius(@list-group-border-radius); } // Disabled state &.disabled, &.disabled:hover, &.disabled:focus { color: @list-group-disabled-color; cursor: @cursor-disabled; background-color: @list-group-disabled-bg; // Force color to inherit for custom content .list-group-item-heading { color: inherit; } .list-group-item-text { color: @list-group-disabled-text-color; } } // Active class on item itself, not parent &.active, &.active:hover, &.active:focus { z-index: 2; // Place active items above their siblings for proper border styling color: @list-group-active-color; background-color: @list-group-active-bg; border-color: @list-group-active-border; // Force color to inherit for custom content .list-group-item-heading, .list-group-item-heading > small, .list-group-item-heading > .small { color: inherit; } .list-group-item-text { color: @list-group-active-text-color; } } } // Interactive list items // // Use anchor or button elements instead of `li`s or `div`s to create interactive items. // Includes an extra `.active` modifier class for showing selected items. a.list-group-item, button.list-group-item { color: @list-group-link-color; .list-group-item-heading { color: @list-group-link-heading-color; } // Hover state &:hover, &:focus { color: @list-group-link-hover-color; text-decoration: none; background-color: @list-group-hover-bg; } } button.list-group-item { width: 100%; text-align: left; } // Contextual variants // // Add modifier classes to change text and background color on individual items. // Organizationally, this must come after the `:hover` states. .list-group-item-variant(success; @state-success-bg; @state-success-text); .list-group-item-variant(info; @state-info-bg; @state-info-text); .list-group-item-variant(warning; @state-warning-bg; @state-warning-text); .list-group-item-variant(danger; @state-danger-bg; @state-danger-text); // Custom content options // // Extra classes for creating well-formatted content within `.list-group-item`s. .list-group-item-heading { margin-top: 0; margin-bottom: 5px; } .list-group-item-text { margin-bottom: 0; line-height: 1.3; } mixins/forms.less 0000604 00000005132 15245700305 0010067 0 ustar 00 // Form validation states // // Used in forms.less to generate the form validation CSS for warnings, errors, // and successes. .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) { // Color the label and help text .help-block, .control-label, .radio, .checkbox, .radio-inline, .checkbox-inline, &.radio label, &.checkbox label, &.radio-inline label, &.checkbox-inline label { color: @text-color; } // Set the border and box shadow on specific inputs to match .form-control { border-color: @border-color; .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work &:focus { border-color: darken(@border-color, 10%); @shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@border-color, 20%); .box-shadow(@shadow); } } // Set validation states also for addons .input-group-addon { color: @text-color; background-color: @background-color; border-color: @border-color; } // Optional feedback icon .form-control-feedback { color: @text-color; } } // Form control focus state // // Generate a customized focus state and for any input with the specified color, // which defaults to the `@input-border-focus` variable. // // We highly encourage you to not customize the default value, but instead use // this to tweak colors on an as-needed basis. This aesthetic change is based on // WebKit's default styles, but applicable to a wider range of browsers. Its // usability and accessibility should be taken into account with any change. // // Example usage: change the default blue border and shadow to white for better // contrast against a dark gray background. .form-control-focus(@color: @input-border-focus) { @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); &:focus { border-color: @color; outline: 0; .box-shadow(~"inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px @{color-rgba}"); } } // Form control sizing // // Relative text size, padding, and border-radii changes for form controls. For // horizontal sizing, wrap controls in the predefined grid classes. `<select>` // element gets special love because it's special, and that's a fact! .input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { height: @input-height; padding: @padding-vertical @padding-horizontal; font-size: @font-size; line-height: @line-height; border-radius: @border-radius; select& { height: @input-height; line-height: @input-height; } textarea&, select[multiple]& { height: auto; } } mixins/text-emphasis.less 0000604 00000000200 15245700305 0011523 0 ustar 00 // Typography .text-emphasis-variant(@color) { color: @color; a&:hover, a&:focus { color: darken(@color, 10%); } } mixins/panels.less 0000604 00000001031 15245700305 0010215 0 ustar 00 // Panels .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { border-color: @border; & > .panel-heading { color: @heading-text-color; background-color: @heading-bg-color; border-color: @heading-border; + .panel-collapse > .panel-body { border-top-color: @border; } .badge { color: @heading-bg-color; background-color: @heading-text-color; } } & > .panel-footer { + .panel-collapse > .panel-body { border-bottom-color: @border; } } } mixins/nav-vertical-align.less 0000604 00000000554 15245700305 0012427 0 ustar 00 // Navbar vertical align // // Vertically center elements in the navbar. // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. .navbar-vertical-align(@element-height) { margin-top: ((@navbar-height - @element-height) / 2); margin-bottom: ((@navbar-height - @element-height) / 2); } mixins/center-block.less 0000604 00000000170 15245700305 0011306 0 ustar 00 // Center-align a block level element .center-block() { display: block; margin-right: auto; margin-left: auto; } mixins/tab-focus.less 0000604 00000000514 15245700305 0010623 0 ustar 00 // WebKit-style focus .tab-focus() { // WebKit-specific. Other browsers will keep their default outline style. // (Initially tried to also force default via `outline: initial`, // but that seems to erroneously remove the outline in Firefox altogether.) outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } mixins/grid-framework.less 0000604 00000005354 15245700305 0011667 0 ustar 00 // Framework grid generation // // Used only by Bootstrap to generate the correct number of grid classes given // any value of `@grid-columns`. .make-grid-columns() { // Common styles for all sizes of grid columns, widths 1-12 .col(@index) { // initial @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; .col((@index + 1), @item); } .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; .col((@index + 1), ~"@{list}, @{item}"); } .col(@index, @list) when (@index > @grid-columns) { // terminal @{list} { position: relative; // Prevent columns from collapsing when empty min-height: 1px; // Inner gutter via padding padding-right: floor((@grid-gutter-width / 2)); padding-left: ceil((@grid-gutter-width / 2)); } } .col(1); // kickstart it } .float-grid-columns(@class) { .col(@index) { // initial @item: ~".col-@{class}-@{index}"; .col((@index + 1), @item); } .col(@index, @list) when (@index =< @grid-columns) { // general @item: ~".col-@{class}-@{index}"; .col((@index + 1), ~"@{list}, @{item}"); } .col(@index, @list) when (@index > @grid-columns) { // terminal @{list} { float: left; } } .col(1); // kickstart it } .calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) { .col-@{class}-@{index} { width: percentage((@index / @grid-columns)); } } .calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) { .col-@{class}-push-@{index} { left: percentage((@index / @grid-columns)); } } .calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) { .col-@{class}-push-0 { left: auto; } } .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) { .col-@{class}-pull-@{index} { right: percentage((@index / @grid-columns)); } } .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) { .col-@{class}-pull-0 { right: auto; } } .calc-grid-column(@index, @class, @type) when (@type = offset) { .col-@{class}-offset-@{index} { margin-left: percentage((@index / @grid-columns)); } } // Basic looping in LESS .loop-grid-columns(@index, @class, @type) when (@index >= 0) { .calc-grid-column(@index, @class, @type); // next iteration .loop-grid-columns((@index - 1), @class, @type); } // Create grid for specific class .make-grid(@class) { .float-grid-columns(@class); .loop-grid-columns(@grid-columns, @class, width); .loop-grid-columns(@grid-columns, @class, pull); .loop-grid-columns(@grid-columns, @class, push); .loop-grid-columns(@grid-columns, @class, offset); } mixins/gradients.less 0000604 00000010537 15245700305 0010726 0 ustar 00 // stylelint-disable value-no-vendor-prefix, selector-max-id #gradient { // Horizontal gradient, from left to right // // Creates two color stops, start and end, by specifying a color and position for each color stop. // Color stops are not available in IE9 and below. .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12 background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)", argb(@start-color), argb(@end-color))); // IE9 and down background-repeat: repeat-x; } // Vertical gradient, from top to bottom // // Creates two color stops, start and end, by specifying a color and position for each color stop. // Color stops are not available in IE9 and below. .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12 background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@start-color), argb(@end-color))); // IE9 and down background-repeat: repeat-x; } .directional(@start-color: #555; @end-color: #333; @deg: 45deg) { background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12 background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ background-repeat: repeat-x; } .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback background-repeat: no-repeat; } .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback background-repeat: no-repeat; } .radial(@inner-color: #555; @outer-color: #333) { background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); background-image: radial-gradient(circle, @inner-color, @outer-color); background-repeat: no-repeat; } .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) { background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); } } mixins/hide-text.less 0000604 00000001234 15245700305 0010633 0 ustar 00 // stylelint-disable font-family-name-quotes, font-family-no-missing-generic-family-keyword // CSS image replacement // // Heads up! v3 launched with only `.hide-text()`, but per our pattern for // mixins being reused as classes with the same name, this doesn't hold up. As // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. // // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 // Deprecated as of v3.0.1 (has been removed in v4) .hide-text() { font: ~"0/0" a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } // New mixin to use as of v3.0.1 .text-hide() { .hide-text(); } mixins/border-radius.less 0000604 00000000714 15245700305 0011504 0 ustar 00 // Single side border-radius .border-top-radius(@radius) { border-top-left-radius: @radius; border-top-right-radius: @radius; } .border-right-radius(@radius) { border-top-right-radius: @radius; border-bottom-right-radius: @radius; } .border-bottom-radius(@radius) { border-bottom-right-radius: @radius; border-bottom-left-radius: @radius; } .border-left-radius(@radius) { border-top-left-radius: @radius; border-bottom-left-radius: @radius; } mixins/clearfix.less 0000604 00000001135 15245700305 0010535 0 ustar 00 // Clearfix // // For modern browsers // 1. The space content is one way to avoid an Opera bug when the // contenteditable attribute is included anywhere else in the document. // Otherwise it causes space to appear at the top and bottom of elements // that are clearfixed. // 2. The use of `table` rather than `block` is only necessary if using // `:before` to contain the top-margins of child elements. // // Source: http://nicolasgallagher.com/micro-clearfix-hack/ .clearfix() { &:before, &:after { display: table; // 2 content: " "; // 1 } &:after { clear: both; } } mixins/resize.less 0000604 00000000304 15245700305 0010236 0 ustar 00 // Resize anything .resizable(@direction) { overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` resize: @direction; // Options: horizontal, vertical, both } mixins/responsive-visibility.less 0000604 00000000460 15245700305 0013322 0 ustar 00 // stylelint-disable declaration-no-important .responsive-visibility() { display: block !important; table& { display: table !important; } tr& { display: table-row !important; } th&, td& { display: table-cell !important; } } .responsive-invisibility() { display: none !important; } mixins/alerts.less 0000604 00000000402 15245700305 0010226 0 ustar 00 // Alerts .alert-variant(@background; @border; @text-color) { color: @text-color; background-color: @background; border-color: @border; hr { border-top-color: darken(@border, 5%); } .alert-link { color: darken(@text-color, 10%); } } mixins/buttons.less 0000604 00000002523 15245700305 0010440 0 ustar 00 // Button variants // // Easily pump out default styles, as well as :hover, :focus, :active, // and disabled options for all buttons .button-variant(@color; @background; @border) { color: @color; background-color: @background; border-color: @border; &:focus, &.focus { color: @color; background-color: darken(@background, 10%); border-color: darken(@border, 25%); } &:hover { color: @color; background-color: darken(@background, 10%); border-color: darken(@border, 12%); } &:active, &.active, .open > .dropdown-toggle& { color: @color; background-color: darken(@background, 10%); background-image: none; border-color: darken(@border, 12%); &:hover, &:focus, &.focus { color: @color; background-color: darken(@background, 17%); border-color: darken(@border, 25%); } } &.disabled, &[disabled], fieldset[disabled] & { &:hover, &:focus, &.focus { background-color: @background; border-color: @border; } } .badge { color: @background; background-color: @color; } } // Button sizes .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { padding: @padding-vertical @padding-horizontal; font-size: @font-size; line-height: @line-height; border-radius: @border-radius; } mixins/progress-bar.less 0000604 00000000277 15245700305 0011354 0 ustar 00 // Progress bars .progress-bar-variant(@color) { background-color: @color; // Deprecated parent class requirement as of v3.2.0 .progress-striped & { #gradient > .striped(); } } mixins/table-row.less 0000604 00000001274 15245700305 0010640 0 ustar 00 // Tables .table-row-variant(@state; @background) { // Exact selectors below required to override `.table-striped` and prevent // inheritance to nested tables. .table > thead > tr, .table > tbody > tr, .table > tfoot > tr { > td.@{state}, > th.@{state}, &.@{state} > td, &.@{state} > th { background-color: @background; } } // Hover states for `.table-hover` // Note: this is not available for cells or rows within `thead` or `tfoot`. .table-hover > tbody > tr { > td.@{state}:hover, > th.@{state}:hover, &.@{state}:hover > td, &:hover > .@{state}, &.@{state}:hover > th { background-color: darken(@background, 5%); } } } mixins/size.less 0000604 00000000177 15245700305 0007717 0 ustar 00 // Sizing shortcuts .size(@width; @height) { width: @width; height: @height; } .square(@size) { .size(@size; @size); } mixins/labels.less 0000604 00000000241 15245700305 0010177 0 ustar 00 // Labels .label-variant(@color) { background-color: @color; &[href] { &:hover, &:focus { background-color: darken(@color, 10%); } } } mixins/vendor-prefixes.less 0000604 00000015125 15245700305 0012064 0 ustar 00 // stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix // Vendor Prefixes // // All vendor mixins are deprecated as of v3.2.0 due to the introduction of // Autoprefixer in our Gruntfile. They have been removed in v4. // - Animations // - Backface visibility // - Box shadow // - Box sizing // - Content columns // - Hyphens // - Placeholder text // - Transformations // - Transitions // - User Select // Animations .animation(@animation) { -webkit-animation: @animation; -o-animation: @animation; animation: @animation; } .animation-name(@name) { -webkit-animation-name: @name; animation-name: @name; } .animation-duration(@duration) { -webkit-animation-duration: @duration; animation-duration: @duration; } .animation-timing-function(@timing-function) { -webkit-animation-timing-function: @timing-function; animation-timing-function: @timing-function; } .animation-delay(@delay) { -webkit-animation-delay: @delay; animation-delay: @delay; } .animation-iteration-count(@iteration-count) { -webkit-animation-iteration-count: @iteration-count; animation-iteration-count: @iteration-count; } .animation-direction(@direction) { -webkit-animation-direction: @direction; animation-direction: @direction; } .animation-fill-mode(@fill-mode) { -webkit-animation-fill-mode: @fill-mode; animation-fill-mode: @fill-mode; } // Backface visibility // Prevent browsers from flickering when using CSS 3D transforms. // Default value is `visible`, but can be changed to `hidden` .backface-visibility(@visibility) { -webkit-backface-visibility: @visibility; -moz-backface-visibility: @visibility; backface-visibility: @visibility; } // Drop shadows // // Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's // supported browsers that have box shadow capabilities now support it. .box-shadow(@shadow) { -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 box-shadow: @shadow; } // Box sizing .box-sizing(@boxmodel) { -webkit-box-sizing: @boxmodel; -moz-box-sizing: @boxmodel; box-sizing: @boxmodel; } // CSS3 Content Columns .content-columns(@column-count; @column-gap: @grid-gutter-width) { -webkit-column-count: @column-count; -moz-column-count: @column-count; column-count: @column-count; -webkit-column-gap: @column-gap; -moz-column-gap: @column-gap; column-gap: @column-gap; } // Optional hyphenation .hyphens(@mode: auto) { -webkit-hyphens: @mode; -moz-hyphens: @mode; -ms-hyphens: @mode; // IE10+ -o-hyphens: @mode; hyphens: @mode; word-wrap: break-word; } // Placeholder text .placeholder(@color: @input-color-placeholder) { // Firefox &::-moz-placeholder { color: @color; opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526 } &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+ &::-webkit-input-placeholder { color: @color; } // Safari and Chrome } // Transformations .scale(@ratio) { -webkit-transform: scale(@ratio); -ms-transform: scale(@ratio); // IE9 only -o-transform: scale(@ratio); transform: scale(@ratio); } .scale(@ratioX; @ratioY) { -webkit-transform: scale(@ratioX, @ratioY); -ms-transform: scale(@ratioX, @ratioY); // IE9 only -o-transform: scale(@ratioX, @ratioY); transform: scale(@ratioX, @ratioY); } .scaleX(@ratio) { -webkit-transform: scaleX(@ratio); -ms-transform: scaleX(@ratio); // IE9 only -o-transform: scaleX(@ratio); transform: scaleX(@ratio); } .scaleY(@ratio) { -webkit-transform: scaleY(@ratio); -ms-transform: scaleY(@ratio); // IE9 only -o-transform: scaleY(@ratio); transform: scaleY(@ratio); } .skew(@x; @y) { -webkit-transform: skewX(@x) skewY(@y); -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+ -o-transform: skewX(@x) skewY(@y); transform: skewX(@x) skewY(@y); } .translate(@x; @y) { -webkit-transform: translate(@x, @y); -ms-transform: translate(@x, @y); // IE9 only -o-transform: translate(@x, @y); transform: translate(@x, @y); } .translate3d(@x; @y; @z) { -webkit-transform: translate3d(@x, @y, @z); transform: translate3d(@x, @y, @z); } .rotate(@degrees) { -webkit-transform: rotate(@degrees); -ms-transform: rotate(@degrees); // IE9 only -o-transform: rotate(@degrees); transform: rotate(@degrees); } .rotateX(@degrees) { -webkit-transform: rotateX(@degrees); -ms-transform: rotateX(@degrees); // IE9 only -o-transform: rotateX(@degrees); transform: rotateX(@degrees); } .rotateY(@degrees) { -webkit-transform: rotateY(@degrees); -ms-transform: rotateY(@degrees); // IE9 only -o-transform: rotateY(@degrees); transform: rotateY(@degrees); } .perspective(@perspective) { -webkit-perspective: @perspective; -moz-perspective: @perspective; perspective: @perspective; } .perspective-origin(@perspective) { -webkit-perspective-origin: @perspective; -moz-perspective-origin: @perspective; perspective-origin: @perspective; } .transform-origin(@origin) { -webkit-transform-origin: @origin; -moz-transform-origin: @origin; -ms-transform-origin: @origin; // IE9 only transform-origin: @origin; } // Transitions .transition(@transition) { -webkit-transition: @transition; -o-transition: @transition; transition: @transition; } .transition-property(@transition-property) { -webkit-transition-property: @transition-property; transition-property: @transition-property; } .transition-delay(@transition-delay) { -webkit-transition-delay: @transition-delay; transition-delay: @transition-delay; } .transition-duration(@transition-duration) { -webkit-transition-duration: @transition-duration; transition-duration: @transition-duration; } .transition-timing-function(@timing-function) { -webkit-transition-timing-function: @timing-function; transition-timing-function: @timing-function; } .transition-transform(@transition) { -webkit-transition: -webkit-transform @transition; -moz-transition: -moz-transform @transition; -o-transition: -o-transform @transition; transition: transform @transition; } // User select // For selecting text on the page .user-select(@select) { -webkit-user-select: @select; -moz-user-select: @select; -ms-user-select: @select; // IE10+ user-select: @select; } mixins/pagination.less 0000604 00000000745 15245700305 0011077 0 ustar 00 // Pagination .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { > li { > a, > span { padding: @padding-vertical @padding-horizontal; font-size: @font-size; line-height: @line-height; } &:first-child { > a, > span { .border-left-radius(@border-radius); } } &:last-child { > a, > span { .border-right-radius(@border-radius); } } } } mixins/reset-text.less 0000604 00000000723 15245700305 0011046 0 ustar 00 .reset-text() { font-family: @font-family-base; // We deliberately do NOT reset font-size. font-style: normal; font-weight: 400; line-height: @line-height-base; line-break: auto; text-align: left; // Fallback for where `start` is not supported text-align: start; text-decoration: none; text-shadow: none; text-transform: none; letter-spacing: normal; word-break: normal; word-spacing: normal; word-wrap: normal; white-space: normal; } mixins/reset-filter.less 0000604 00000000370 15245700305 0011345 0 ustar 00 // Reset filters for IE // // When you need to remove a gradient background, do not forget to use this to reset // the IE filter for IE9 and below. .reset-filter() { filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); } mixins/text-overflow.less 0000604 00000000242 15245700305 0011563 0 ustar 00 // Text overflow // Requires inline-block or block for proper styling .text-overflow() { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } mixins/grid.less 0000604 00000006052 15245700305 0007670 0 ustar 00 // Grid system // // Generate semantic grid columns with these mixins. // Centered container element .container-fixed(@gutter: @grid-gutter-width) { padding-right: ceil((@gutter / 2)); padding-left: floor((@gutter / 2)); margin-right: auto; margin-left: auto; &:extend(.clearfix all); } // Creates a wrapper for a series of columns .make-row(@gutter: @grid-gutter-width) { margin-right: floor((@gutter / -2)); margin-left: ceil((@gutter / -2)); &:extend(.clearfix all); } // Generate the extra small columns .make-xs-column(@columns; @gutter: @grid-gutter-width) { position: relative; float: left; width: percentage((@columns / @grid-columns)); min-height: 1px; padding-right: (@gutter / 2); padding-left: (@gutter / 2); } .make-xs-column-offset(@columns) { margin-left: percentage((@columns / @grid-columns)); } .make-xs-column-push(@columns) { left: percentage((@columns / @grid-columns)); } .make-xs-column-pull(@columns) { right: percentage((@columns / @grid-columns)); } // Generate the small columns .make-sm-column(@columns; @gutter: @grid-gutter-width) { position: relative; min-height: 1px; padding-right: (@gutter / 2); padding-left: (@gutter / 2); @media (min-width: @screen-sm-min) { float: left; width: percentage((@columns / @grid-columns)); } } .make-sm-column-offset(@columns) { @media (min-width: @screen-sm-min) { margin-left: percentage((@columns / @grid-columns)); } } .make-sm-column-push(@columns) { @media (min-width: @screen-sm-min) { left: percentage((@columns / @grid-columns)); } } .make-sm-column-pull(@columns) { @media (min-width: @screen-sm-min) { right: percentage((@columns / @grid-columns)); } } // Generate the medium columns .make-md-column(@columns; @gutter: @grid-gutter-width) { position: relative; min-height: 1px; padding-right: (@gutter / 2); padding-left: (@gutter / 2); @media (min-width: @screen-md-min) { float: left; width: percentage((@columns / @grid-columns)); } } .make-md-column-offset(@columns) { @media (min-width: @screen-md-min) { margin-left: percentage((@columns / @grid-columns)); } } .make-md-column-push(@columns) { @media (min-width: @screen-md-min) { left: percentage((@columns / @grid-columns)); } } .make-md-column-pull(@columns) { @media (min-width: @screen-md-min) { right: percentage((@columns / @grid-columns)); } } // Generate the large columns .make-lg-column(@columns; @gutter: @grid-gutter-width) { position: relative; min-height: 1px; padding-right: (@gutter / 2); padding-left: (@gutter / 2); @media (min-width: @screen-lg-min) { float: left; width: percentage((@columns / @grid-columns)); } } .make-lg-column-offset(@columns) { @media (min-width: @screen-lg-min) { margin-left: percentage((@columns / @grid-columns)); } } .make-lg-column-push(@columns) { @media (min-width: @screen-lg-min) { left: percentage((@columns / @grid-columns)); } } .make-lg-column-pull(@columns) { @media (min-width: @screen-lg-min) { right: percentage((@columns / @grid-columns)); } } mixins/background-variant.less 0000604 00000000227 15245700305 0012522 0 ustar 00 // Contextual backgrounds .bg-variant(@color) { background-color: @color; a&:hover, a&:focus { background-color: darken(@color, 10%); } } mixins/list-group.less 0000604 00000001042 15245700305 0011042 0 ustar 00 // List Groups .list-group-item-variant(@state; @background; @color) { .list-group-item-@{state} { color: @color; background-color: @background; a&, button& { color: @color; .list-group-item-heading { color: inherit; } &:hover, &:focus { color: @color; background-color: darken(@background, 5%); } &.active, &.active:hover, &.active:focus { color: #fff; background-color: @color; border-color: @color; } } } } mixins/opacity.less 0000604 00000000223 15245700305 0010405 0 ustar 00 // Opacity .opacity(@opacity) { @opacity-ie: (@opacity * 100); // IE8 filter filter: ~"alpha(opacity=@{opacity-ie})"; opacity: @opacity; } mixins/image.less 0000604 00000002151 15245700305 0010021 0 ustar 00 // stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after // Responsive image // // Keep images from scaling beyond the width of their parents. .img-responsive(@display: block) { display: @display; max-width: 100%; // Part 1: Set a maximum relative to the parent height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching } // Retina image // // Short retina mixin for setting background-image and -size. Note that the // spelling of `min--moz-device-pixel-ratio` is intentional. .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { background-image: url("@{file-1x}"); @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and ( min--moz-device-pixel-ratio: 2), only screen and ( -o-min-device-pixel-ratio: 2/1), only screen and ( min-device-pixel-ratio: 2), only screen and ( min-resolution: 192dpi), only screen and ( min-resolution: 2dppx) { background-image: url("@{file-2x}"); background-size: @width-1x @height-1x; } } mixins/nav-divider.less 0000604 00000000350 15245700305 0011146 0 ustar 00 // Horizontal dividers // // Dividers (basically an hr) within dropdowns and nav lists .nav-divider(@color: #e5e5e5) { height: 1px; margin: ((@line-height-computed / 2) - 1) 0; overflow: hidden; background-color: @color; } labels.less 0000604 00000002066 15245700305 0006677 0 ustar 00 // // Labels // -------------------------------------------------- .label { display: inline; padding: .2em .6em .3em; font-size: 75%; font-weight: 700; line-height: 1; color: @label-color; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25em; // Add hover effects, but only for links a& { &:hover, &:focus { color: @label-link-hover-color; text-decoration: none; cursor: pointer; } } // Empty labels collapse automatically (not available in IE8) &:empty { display: none; } // Quick fix for labels in buttons .btn & { position: relative; top: -1px; } } // Colors // Contextual variations (linked labels get darker on :hover) .label-default { .label-variant(@label-default-bg); } .label-primary { .label-variant(@label-primary-bg); } .label-success { .label-variant(@label-success-bg); } .label-info { .label-variant(@label-info-bg); } .label-warning { .label-variant(@label-warning-bg); } .label-danger { .label-variant(@label-danger-bg); } print.less 0000604 00000003336 15245700305 0006572 0 ustar 00 // stylelint-disable declaration-no-important, selector-no-qualifying-type /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ // ========================================================================== // Print styles. // Inlined to avoid the additional HTTP request: h5bp.com/r // ========================================================================== @media print { *, *:before, *:after { color: #000 !important; // Black prints faster: h5bp.com/s text-shadow: none !important; background: transparent !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } // Don't show links that are fragment identifiers, // or use the `javascript:` pseudo protocol a[href^="#"]:after, a[href^="javascript:"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; // h5bp.com/t } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } // Bootstrap specific changes start // Bootstrap components .navbar { display: none; } .btn, .dropup > .btn { > .caret { border-top-color: #000 !important; } } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; td, th { background-color: #fff !important; } } .table-bordered { th, td { border: 1px solid #ddd !important; } } } jumbotron.less 0000604 00000002170 15245700305 0007450 0 ustar 00 // // Jumbotron // -------------------------------------------------- .jumbotron { padding-top: @jumbotron-padding; padding-bottom: @jumbotron-padding; margin-bottom: @jumbotron-padding; color: @jumbotron-color; background-color: @jumbotron-bg; h1, .h1 { color: @jumbotron-heading-color; } p { margin-bottom: (@jumbotron-padding / 2); font-size: @jumbotron-font-size; font-weight: 200; } > hr { border-top-color: darken(@jumbotron-bg, 10%); } .container &, .container-fluid & { padding-right: (@grid-gutter-width / 2); padding-left: (@grid-gutter-width / 2); border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container } .container { max-width: 100%; } @media screen and (min-width: @screen-sm-min) { padding-top: (@jumbotron-padding * 1.6); padding-bottom: (@jumbotron-padding * 1.6); .container &, .container-fluid & { padding-right: (@jumbotron-padding * 2); padding-left: (@jumbotron-padding * 2); } h1, .h1 { font-size: @jumbotron-heading-font-size; } } } badges.less 0000604 00000002257 15245700305 0006664 0 ustar 00 // // Badges // -------------------------------------------------- // Base class .badge { display: inline-block; min-width: 10px; padding: 3px 7px; font-size: @font-size-small; font-weight: @badge-font-weight; line-height: @badge-line-height; color: @badge-color; text-align: center; white-space: nowrap; vertical-align: middle; background-color: @badge-bg; border-radius: @badge-border-radius; // Empty badges collapse automatically (not available in IE8) &:empty { display: none; } // Quick fix for badges in buttons .btn & { position: relative; top: -1px; } .btn-xs &, .btn-group-xs > .btn & { top: 0; padding: 1px 5px; } // Hover state, but only for links a& { &:hover, &:focus { color: @badge-link-hover-color; text-decoration: none; cursor: pointer; } } // Account for badges in navs .list-group-item.active > &, .nav-pills > .active > a > & { color: @badge-active-color; background-color: @badge-active-bg; } .list-group-item > & { float: right; } .list-group-item > & + & { margin-right: 5px; } .nav-pills > li > a > & { margin-left: 3px; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0.03 |
proxy
|
phpinfo
|
Настройка