├── .gitignore ├── theme ├── alter.inc ├── system │ ├── button.vars.php │ ├── textarea.vars.php │ ├── date.func.php │ ├── table.vars.php │ ├── container.func.php │ ├── checkbox.vars.php │ ├── button.func.php │ ├── status-messages.func.php │ ├── page.vars.php │ ├── html.tpl.php │ ├── pager.func.php │ ├── page--admin.tpl.php │ └── page.tpl.php ├── menu │ ├── menu-tree.func.php │ ├── menu-local-tasks.func.php │ ├── menu-local-task.func.php │ └── menu-link.func.php ├── file │ └── file-widget.func.php ├── search │ └── search-block-form.tpl.php ├── views │ ├── views-view-table.tpl.php │ └── views-view.tpl.php └── common.inc ├── luxor ├── README.md ├── logo.png ├── template.php ├── favicon.ico ├── screenshot.png ├── images │ └── loading.gif ├── font │ ├── roboto │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Thin.woff │ │ ├── Roboto-Thin.woff2 │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ └── Roboto-Regular.woff2 │ └── material-design-icons │ │ ├── Material-Design-Icons.eot │ │ ├── Material-Design-Icons.ttf │ │ ├── Material-Design-Icons.woff │ │ └── LICENSE.txt ├── css │ ├── README.txt │ └── style.css ├── luxor.info ├── js │ └── luxor.settings.js └── templates │ ├── html.tpl.php │ └── page.tpl.php ├── logo.png ├── screenshot.png ├── images ├── loading.gif └── config │ ├── media.png │ ├── content.png │ ├── people.png │ ├── search.png │ ├── system.png │ ├── regional.png │ ├── services.png │ ├── development.png │ ├── administration.png │ └── user-interface.png ├── font ├── roboto │ ├── Roboto-Bold.ttf │ ├── Roboto-Bold.woff │ ├── Roboto-Light.ttf │ ├── Roboto-Thin.ttf │ ├── Roboto-Thin.woff │ ├── Roboto-Bold.woff2 │ ├── Roboto-Light.woff │ ├── Roboto-Light.woff2 │ ├── Roboto-Medium.ttf │ ├── Roboto-Medium.woff │ ├── Roboto-Regular.ttf │ ├── Roboto-Thin.woff2 │ ├── Roboto-Medium.woff2 │ ├── Roboto-Regular.woff │ └── Roboto-Regular.woff2 └── material-design-icons │ ├── Material-Design-Icons.eot │ ├── Material-Design-Icons.ttf │ ├── Material-Design-Icons.woff │ └── LICENSE.txt ├── README.md ├── lux.info ├── js └── lux.settings.js ├── LICENSE.md ├── theme-settings.php ├── css └── styles.css └── template.php /.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /theme/alter.inc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /luxor/README.md: -------------------------------------------------------------------------------- 1 | ### Aegir Specific Lux subtheme -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poetic/lux/0.2.x/logo.png -------------------------------------------------------------------------------- /luxor/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poetic/lux/0.2.x/luxor/logo.png -------------------------------------------------------------------------------- /luxor/template.php: -------------------------------------------------------------------------------- 1 | ' . drupal_render_children($element) . ''; 23 | } -------------------------------------------------------------------------------- /theme/system/table.vars.php: -------------------------------------------------------------------------------- 1 | ' . $variables['tree'] . ''; 12 | } 13 | 14 | /** 15 | * Lux theme wrapper function for the primary menu links. 16 | */ 17 | function lux_menu_tree__primary(&$variables) { 18 | return ''; 19 | } 20 | 21 | /** 22 | * Lux theme wrapper function for the secondary menu links. 23 | */ 24 | function lux_menu_tree__secondary(&$variables) { 25 | return ''; 26 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Lux 2 | 3 | A modern responsive front-end framework based on Material Design, integrated into Drupal. 4 | 5 | ## Material Design 6 | 7 | Created and designed by Google, Material Design is a design language that combines the classic principles of successful design along with innovation and technology. Google's goal is to develop a system of design that allows for a unified user experience across all their products on any platform. 8 | 9 | http://materializecss.com/ 10 | 11 | ## Dependencies 12 | 13 | [jQuery Update](https://www.drupal.org/project/jquery_update) with jQuery version set to 1.10.x or above. 14 | 15 | ## Showcase 16 | 17 | Spin up a site with Lux using [Lux Playground](https://github.com/poetic/lux-playground-content) -------------------------------------------------------------------------------- /luxor/luxor.info: -------------------------------------------------------------------------------- 1 | name = Luxor 2 | description = A Lux Sub-theme for Aegir hostmaster. 3 | core = 7.x 4 | base theme = lux 5 | 6 | 7 | ;;;;;;;;;;;;;;;;;;;;; 8 | ;; Regions 9 | ;;;;;;;;;;;;;;;;;;;;; 10 | 11 | regions[sidebar_first] = Sidebar top 12 | regions[sidebar_second] = Sidebar bottom 13 | regions[content] = Content 14 | regions[content_bottom] = Content bottom 15 | regions[header] = Header 16 | regions[footer] = Footer 17 | regions[help] = Help 18 | 19 | ;;;;;;;;;;;;;;;;;;;;; 20 | ;; Stylesheets 21 | ;;;;;;;;;;;;;;;;;;;;; 22 | 23 | stylesheets[all][] = css/style.css 24 | stylesheets[all][] = css/materialize.min.css 25 | 26 | ; ;;;;;;;;;;;;;;;;;;;;; 27 | ; ;; Scripts 28 | ; ;;;;;;;;;;;;;;;;;;;;; 29 | 30 | scripts[] = js/materialize.min.js 31 | scripts[] = js/luxor.settings.js 32 | 33 | -------------------------------------------------------------------------------- /lux.info: -------------------------------------------------------------------------------- 1 | name = Lux 2 | description = Drupal Materialize 3 | core = 7.x 4 | 5 | scripts[] = js/materialize.min.js 6 | scripts[] = js/lux.settings.js 7 | 8 | stylesheets[all][] = css/materialize.min.css 9 | stylesheets[all][] = css/styles.css 10 | 11 | regions[navigation] = Navigation 12 | regions[header] = Header 13 | regions[highlighted] = Highlighted 14 | regions[help] = Help 15 | regions[content] = Content 16 | regions[sidebar_first] = Left sidebar 17 | regions[sidebar_second] = Right sidebar 18 | regions[footer] = Footer 19 | 20 | features[] = logo 21 | features[] = name 22 | features[] = slogan 23 | features[] = node_user_picture 24 | features[] = comment_user_picture 25 | features[] = comment_user_verification 26 | features[] = favicon 27 | features[] = main_menu 28 | 29 | dependencies[] = jquery_update -------------------------------------------------------------------------------- /theme/system/container.func.php: -------------------------------------------------------------------------------- 1 | ' . $element['#children'] . ''; 26 | } -------------------------------------------------------------------------------- /js/lux.settings.js: -------------------------------------------------------------------------------- 1 | (function(window, document, $){ 2 | $(document).ready(function() { 3 | 4 | //Enable Materialize select 5 | $('select').material_select(); 6 | //Enable Materialize Accordion 7 | $('.collapsible').collapsible({ 8 | accordion : false 9 | }); 10 | // File Input Path 11 | $('.file-field').each(function() { 12 | var path_input = $(this).find('input.file-path'); 13 | $(this).find('input[type="file"]').change(function () { 14 | path_input.val($(this)[0].files[0].name); 15 | path_input.trigger('change'); 16 | }); 17 | }); 18 | 19 | // Reenable primary link functionality 20 | $('.primary a, .secondary a').on('click', function() { 21 | window.location = $(this).attr('href'); 22 | }); 23 | }); 24 | })(window, document, jQuery); 25 | -------------------------------------------------------------------------------- /luxor/js/luxor.settings.js: -------------------------------------------------------------------------------- 1 | (function(window, document, $){ 2 | $(document).ready(function() { 3 | 4 | //Enable Materialize select 5 | $('select').material_select(); 6 | //Enable Materialize Accordion 7 | $('.collapsible').collapsible({ 8 | accordion : false 9 | }); 10 | // File Input Path 11 | $('.file-field').each(function() { 12 | var path_input = $(this).find('input.file-path'); 13 | $(this).find('input[type="file"]').change(function () { 14 | path_input.val($(this)[0].files[0].name); 15 | path_input.trigger('change'); 16 | }); 17 | }); 18 | 19 | // Reenable primary link functionality 20 | $('.primary a, .secondary a').on('click', function() { 21 | window.location = $(this).attr('href'); 22 | }); 23 | }); 24 | })(window, document, jQuery); 25 | -------------------------------------------------------------------------------- /luxor/templates/html.tpl.php: -------------------------------------------------------------------------------- 1 | 3 | > 4 | 5 | 6 | 7 | <?php print $head_title; ?> 8 | 9 | 10 | 11 | > 12 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /theme/system/checkbox.vars.php: -------------------------------------------------------------------------------- 1 | 20 | // 26 | // 27 | // 28 | // if(theme_get_setting('lux_toggle_selection')) { 29 | // $vars['theme_hook_suggestions'][] = 'checkbox-toggle.tpl.php'; 30 | // } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /theme/file/file-widget.func.php: -------------------------------------------------------------------------------- 1 | '; 15 | $output .= '
'; 16 | $output .= ''; 17 | $output .= '
'; 18 | $output .= 'File'; 19 | $output .= '
'; 20 | 21 | if ($element['fid']['#value'] != 0) { 22 | // Add the file size after the file name. 23 | $element['filename']['#markup'] .= ' (' . format_size($element['#file']->filesize) . ') '; 24 | } 25 | $output .= drupal_render_children($element); 26 | $output .= '
'; 27 | 28 | return $output; 29 | } -------------------------------------------------------------------------------- /theme/menu/menu-local-tasks.func.php: -------------------------------------------------------------------------------- 1 |

' . t('Primary tabs') . '

'; 14 | $variables['primary']['#prefix'] .= ''; 16 | $output .= drupal_render($variables ['primary']); 17 | } 18 | if (!empty($variables ['secondary'])) { 19 | $variables['secondary']['#prefix'] = '

' . t('Secondary tabs') . '

'; 20 | $variables['secondary']['#prefix'] .= ''; 22 | $output .= drupal_render($variables['secondary']); 23 | } 24 | return $output; 25 | } -------------------------------------------------------------------------------- /theme/menu/menu-local-task.func.php: -------------------------------------------------------------------------------- 1 | ' . t('(active tab)') . ''; 17 | 18 | // If the link does not contain HTML already, check_plain() it now. 19 | // After we set 'html'=TRUE the link will not be sanitized by l(). 20 | if (empty($link ['localized_options']['html'])) { 21 | $link ['title'] = check_plain($link ['title']); 22 | } 23 | $link ['localized_options']['html'] = TRUE; 24 | $link_text = t('!local-task-title!active', array('!local-task-title' => $link ['title'], '!active' => $active)); 25 | } 26 | 27 | return '
  • ' . l($link_text, $link ['href'], $link ['localized_options']) . "
  • \n"; 28 | } 29 | -------------------------------------------------------------------------------- /theme/system/button.func.php: -------------------------------------------------------------------------------- 1 | ' . $label . "\n"; 35 | } 36 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Poetic Systems 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /theme/search/search-block-form.tpl.php: -------------------------------------------------------------------------------- 1 | 22 | *
    23 | * 24 | *
    25 | * 26 | * @endcode 27 | * 28 | * @see template_preprocess_search_block_form() 29 | */ 30 | ?> 31 |
    32 | subject)): ?> 33 |

    34 | 35 | 36 |
    -------------------------------------------------------------------------------- /theme-settings.php: -------------------------------------------------------------------------------- 1 | 'checkbox', 29 | '#title' => t('Rebuild theme registry on every page.'), 30 | '#default_value' => theme_get_setting('lux_rebuild_registry'), 31 | '#description' => t('During theme development, it can be very useful to continuously !rebuild. !warning', array( 32 | '!rebuild' => l(t('rebuild the theme registry'), 'http://drupal.org/node/173880#theme-registry'), 33 | '!warning' => '
    ' . t('WARNING') . ': ' . t('This is a huge performance penalty and must be turned off on production websites. ') . '
    ', 34 | )), 35 | '#weight' => 0, 36 | ); 37 | 38 | $form['lux_toggle_selection'] = array( 39 | '#type' => 'checkbox', 40 | '#title' => t('Use toggle switches instead of checkboxes'), 41 | '#default_value' => theme_get_setting('lux_toggle_selection'), 42 | '#description' => t('Use toggle switches instead of checkboxes (description)'), 43 | '#weight' => 0, 44 | ); 45 | } 46 | -------------------------------------------------------------------------------- /theme/system/status-messages.func.php: -------------------------------------------------------------------------------- 1 | t('Status message'), 16 | 'error' => t('Error message'), 17 | 'warning' => t('Warning message'), 18 | 'info' => t('Informative message'), 19 | ); 20 | 21 | // Map Drupal message types to respective materialize classes 22 | $status_class = array( 23 | 'status' => 'success green lighten-2', 24 | 'error' => 'danger red lighten-2', 25 | 'warning' => 'warning blue lighten-2', 26 | // Not supported, but in theory a module could send any type of message. 27 | // @see drupal_set_message() 28 | // @see theme_status_messages() 29 | 'info' => 'info', 30 | ); 31 | 32 | foreach (drupal_get_messages($display) as $type => $messages) { 33 | $class = (isset($status_class[$type])) ? ' alert-' . $status_class[$type] : ''; 34 | $output .= "
    \n"; 35 | $output .= " ×\n"; 36 | 37 | if (!empty($status_heading[$type])) { 38 | $output .= '

    ' . $status_heading[$type] . "

    \n"; 39 | } 40 | 41 | if (count($messages) > 1) { 42 | $output .= " \n"; 47 | } 48 | else { 49 | $output .= $messages[0]; 50 | } 51 | 52 | $output .= "
    \n"; 53 | } 54 | return $output; 55 | } 56 | -------------------------------------------------------------------------------- /theme/system/page.vars.php: -------------------------------------------------------------------------------- 1 | ' . drupal_render($element['#below']) . ''; 24 | // Generate as standard dropdown. 25 | $element['#title'] .= ' '; 26 | $element['#attributes']['class'][] = 'dropdown'; 27 | $element['#localized_options']['html'] = TRUE; 28 | 29 | // Set dropdown trigger element to # to prevent inadvertant page loading 30 | // when a submenu link is clicked. 31 | $element['#localized_options']['attributes']['data-target'] = '#'; 32 | $element['#localized_options']['attributes']['class'][] = 'dropdown-toggle'; 33 | $element['#localized_options']['attributes']['data-toggle'] = 'dropdown'; 34 | } 35 | } 36 | // On primary navigation menu, class 'active' is not set on active menu item. 37 | // @see https://drupal.org/node/1896674 38 | if (($element['#href'] == $_GET['q'] || ($element['#href'] == '' && drupal_is_front_page())) && (empty($element['#localized_options']['language']))) { 39 | $element['#attributes']['class'][] = 'active'; 40 | } 41 | $output = l($element['#title'], $element['#href'], $element['#localized_options']); 42 | return '' . $output . $sub_menu . "\n"; 43 | } -------------------------------------------------------------------------------- /theme/views/views-view-table.tpl.php: -------------------------------------------------------------------------------- 1 | 22 | > 23 | 24 | 25 | 26 | 27 | 28 | 29 | $label): ?> 30 | 33 | 34 | 35 | 36 | 37 | 38 | $row): ?> 39 | > 40 | $content): ?> 41 | 44 | 45 | 46 | 47 | 48 |
    > 31 | 32 |
    > 42 | 43 |
    49 | -------------------------------------------------------------------------------- /luxor/templates/page.tpl.php: -------------------------------------------------------------------------------- 1 |
    2 | 10 | 11 | 17 | 18 | 19 |
    20 | 21 |
    22 | 23 | 24 |
    25 | 26 | 27 |

    28 | 29 |
    30 | 31 |
    32 | 33 | 34 |
    35 |
    36 | 37 | 38 | 39 | 40 |
    41 |
    42 | 44 | 45 | 46 | 47 | 48 |
    49 | 50 | 56 | 57 |
    58 | -------------------------------------------------------------------------------- /theme/views/views-view.tpl.php: -------------------------------------------------------------------------------- 1 | 30 |
    31 | 32 | 33 | 34 | 35 | 36 | 37 |
    38 | 39 |
    40 | 41 | 42 | 43 |
    44 | 45 |
    46 | 47 | 48 | 49 |
    50 | 51 |
    52 | 53 | 54 | 55 |
    56 | 57 |
    58 | 59 |
    60 | 61 |
    62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
    70 | 71 |
    72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 82 | 83 | 84 | 85 |
    86 | 87 |
    88 | 89 | 90 |
    91 | -------------------------------------------------------------------------------- /theme/system/html.tpl.php: -------------------------------------------------------------------------------- 1 | language contains its textual representation. 11 | * $language->dir contains the language direction. It will either be 'ltr' or 12 | * 'rtl'. 13 | * - $rdf_namespaces: All the RDF namespace prefixes used in the HTML document. 14 | * - $grddl_profile: A GRDDL profile allowing agents to extract the RDF data. 15 | * - $head_title: A modified version of the page title, for use in the TITLE 16 | * tag. 17 | * - $head_title_array: (array) An associative array containing the string parts 18 | * that were used to generate the $head_title variable, already prepared to be 19 | * output as TITLE tag. The key/value pairs may contain one or more of the 20 | * following, depending on conditions: 21 | * - title: The title of the current page, if any. 22 | * - name: The name of the site. 23 | * - slogan: The slogan of the site, if any, and if there is no title. 24 | * - $head: Markup for the HEAD section (including meta tags, keyword tags, and 25 | * so on). 26 | * - $styles: Style tags necessary to import all CSS files for the page. 27 | * - $scripts: Script tags necessary to load the JavaScript files and settings 28 | * for the page. 29 | * - $page_top: Initial markup from any modules that have altered the 30 | * page. This variable should always be output first, before all other dynamic 31 | * content. 32 | * - $page: The rendered page content. 33 | * - $page_bottom: Final closing markup from any modules that have altered the 34 | * page. This variable should always be output last, after all other dynamic 35 | * content. 36 | * - $classes String of classes that can be used to style contextually through 37 | * CSS. 38 | * 39 | * @see template_preprocess() 40 | * @see template_preprocess_html() 41 | * @see template_process() 42 | * 43 | * @ingroup themeable 44 | */ 45 | ?> 47 | > 48 | 49 | 50 | 51 | 52 | <?php print $head_title; ?> 53 | 54 | 55 | 58 | 59 | 60 | > 61 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /css/styles.css: -------------------------------------------------------------------------------- 1 | /* Typography */ 2 | h1, h3, h5 { 3 | font-weight: 300; 4 | } 5 | h2, h4, h6, p { 6 | font-weight: 400; 7 | } 8 | 9 | /* Nav elements overrides */ 10 | #logo img { 11 | vertical-align: middle; 12 | } 13 | #name-and-slogan { 14 | display: inline-block; 15 | margin: 0 7%; 16 | } 17 | .nav-section { 18 | display: inline; 19 | } 20 | .clearfix.right { 21 | clear: right; 22 | } 23 | /* Components */ 24 | .btn { 25 | margin: 0 10px 0 0; 26 | } 27 | form select { 28 | display: none; 29 | } 30 | .select-dropdown.dropdown-content li>a, .select-dropdown.dropdown-content li>span { 31 | font-size: 12px; 32 | } 33 | /* Prefix/Suffix CSS overrides */ 34 | form input { 35 | width: auto !important; 36 | } 37 | .field-prefix + input[type="text"], 38 | .field-suffix + input[type="text"] { 39 | text-align: center; 40 | } 41 | 42 | /* Textarea Grippie overrides */ 43 | textarea { 44 | margin-bottom: 0 !important; 45 | } 46 | textarea:focus + .grippie { 47 | margin-top: 1px; 48 | } 49 | 50 | /* File field CSS overrides*/ 51 | .file-field input[type="file"] { 52 | width: 91px !important; 53 | } 54 | .file-field button.btn { 55 | position: static; 56 | float: none; 57 | margin: 0 0 0 10px; 58 | } 59 | .file-path button[value="Remove"] { 60 | width: 0px !important; 61 | } 62 | .file-size ~ .validate { 63 | display: none; 64 | } 65 | /*Fieldset overrides*/ 66 | .collapsible-body { 67 | padding: 10px 20px; 68 | } 69 | /* Band-aids for growing pains, will be removed as project matures */ 70 | .wrapper { 71 | max-width: 1024px; 72 | margin: 0 auto; 73 | } 74 | #page-wrapper { 75 | overflow-x: hidden; 76 | } 77 | #page { 78 | max-width: 1200px; 79 | margin: 0 auto; 80 | padding: 0 20px; 81 | } 82 | table th, table td { 83 | padding: 15px 20px; 84 | } 85 | 86 | .ajax-progress { 87 | margin-left: 10px; 88 | vertical-align: middle; 89 | } 90 | .ajax-progress .throbber { 91 | background-image: url(../images/loading.gif); 92 | background-size: 32px; 93 | width: 32px; 94 | height: 32px; 95 | } 96 | .page-admin-people-permissions input[type="checkbox"]:not(:checked), 97 | .page-admin-people-permissions input[type="checkbox"]:checked { 98 | position: relative 99 | left: 0; 100 | } 101 | /* Node Edit Tabs Overrides */ 102 | .tabs.primary, 103 | .tabs.secondary { 104 | margin: 0; 105 | padding: 0 !important; 106 | border: none !important; 107 | } 108 | .tabs.primary a, 109 | .tabs.secondary a { 110 | padding: 0 !important; 111 | background: none !important; 112 | color: #009688 !important; 113 | border: 0 !important; 114 | border-bottom: 2px solid #e0f2f1 !important; 115 | } 116 | .tabs.primary .tab, 117 | .tabs.secondary .tab { 118 | width: 10% !important; 119 | } 120 | .tabs .indicator { 121 | background: #80cbc4 !important; 122 | } 123 | .form-textarea-wrapper { 124 | border: 1px solid #bdbdbd; 125 | } 126 | /* Accordion - Features Override */ 127 | fieldset.features-export-component.collapsible { 128 | background: #fff !important; 129 | } 130 | #features-filter fieldset { 131 | padding: 0 10px !important; 132 | } 133 | .container-inline div.collapsible-header { 134 | display: block; 135 | } 136 | /* Pager */ 137 | .pager-wrap { 138 | max-width: 725px; 139 | margin: 0 auto; 140 | } 141 | .prev.first { 142 | margin-right: 30px; 143 | } 144 | .clearafter:after { 145 | content: ''; 146 | display: block; 147 | clear: both; 148 | } 149 | a.feed-icon { 150 | display: none; 151 | } 152 | /* Status Messages */ 153 | .alert { 154 | color: #fff; 155 | } 156 | .alert a { 157 | color: #bbdefb; 158 | } 159 | /*Admin specific overrides*/ 160 | div.admin .left { 161 | margin-left: 0; 162 | } 163 | .admin-panel.card { 164 | margin: 30px 0; 165 | padding: 15px 120px 45px 15px; 166 | background-size: 75px; 167 | background-position: 96% 15px; 168 | background-repeat: no-repeat; 169 | } 170 | .admin-panel.card.people { 171 | background-image: url('../images/config/people.png'); 172 | } 173 | .admin-panel.card.content { 174 | background-image: url('../images/config/content.png'); 175 | } 176 | .admin-panel.card.media { 177 | background-image: url('../images/config/media.png'); 178 | } 179 | .admin-panel.card.search { 180 | background-image: url('../images/config/search.png'); 181 | } 182 | .admin-panel.card.system { 183 | background-image: url('../images/config/system.png'); 184 | } 185 | .admin-panel.card.user-interface { 186 | background-image: url('../images/config/user-interface.png'); 187 | } 188 | .admin-panel.card.development { 189 | background-image: url('../images/config/development.png'); 190 | } 191 | .admin-panel.card.services { 192 | background-image: url('../images/config/services.png'); 193 | } 194 | .admin-panel.card.regional { 195 | background-image: url('../images/config/regional.png'); 196 | } 197 | .admin-panel.card.administration { 198 | background-image: url('../images/config/administration.png'); 199 | } 200 | .admin-panel.card .title, div.admin-panel .description { 201 | font-weight: 300; 202 | } 203 | .admin-panel dt a { 204 | font-weight: 400; 205 | } 206 | -------------------------------------------------------------------------------- /theme/system/pager.func.php: -------------------------------------------------------------------------------- 1 | $pager_max) { 35 | // Adjust "center" if at end of query. 36 | $i = $i + ($pager_max - $pager_last); 37 | $pager_last = $pager_max; 38 | } 39 | if ($i <= 0) { 40 | // Adjust "center" if at start of query. 41 | $pager_last = $pager_last + (1 - $i); 42 | $i = 1; 43 | } 44 | 45 | // End of generation loop preparation. 46 | // @todo add theme setting for this. 47 | // $li_first = theme('pager_first', array( 48 | // 'text' => (isset($tags[0]) ? $tags[0] : t('first')), 49 | // 'element' => $element, 50 | // 'parameters' => $parameters, 51 | // )); 52 | $li_previous = theme('pager_previous', array( 53 | 'text' => (isset($tags[1]) ? $tags[1] : t('previous')), 54 | 'element' => $element, 55 | 'interval' => 1, 56 | 'parameters' => $parameters, 57 | )); 58 | $li_next = theme('pager_next', array( 59 | 'text' => (isset($tags[3]) ? $tags[3] : t('next')), 60 | 'element' => $element, 61 | 'interval' => 1, 62 | 'parameters' => $parameters, 63 | )); 64 | // @todo add theme setting for this. 65 | // $li_last = theme('pager_last', array( 66 | // 'text' => (isset($tags[4]) ? $tags[4] : t('last')), 67 | // 'element' => $element, 68 | // 'parameters' => $parameters, 69 | // )); 70 | if ($pager_total[$element] > 1) { 71 | // @todo add theme setting for this. 72 | // if ($li_first) { 73 | // $items[] = array( 74 | // 'class' => array('pager-first'), 75 | // 'data' => $li_first, 76 | // ); 77 | // } 78 | if ($li_previous) { 79 | $items[] = array( 80 | 'class' => array('prev'), 81 | 'data' => $li_previous, 82 | ); 83 | } 84 | // When there is more than one page, create the pager list. 85 | if ($i != $pager_max) { 86 | if ($i > 1) { 87 | $items[] = array( 88 | 'class' => array('pager-ellipsis', 'disabled'), 89 | 'data' => '', 90 | ); 91 | } 92 | // Now generate the actual pager piece. 93 | for (; $i <= $pager_last && $i <= $pager_max; $i++) { 94 | if ($i < $pager_current) { 95 | $items[] = array( 96 | // 'class' => array('pager-item'), 97 | 'data' => theme('pager_previous', array( 98 | 'text' => $i, 99 | 'element' => $element, 100 | 'interval' => ($pager_current - $i), 101 | 'parameters' => $parameters, 102 | )), 103 | ); 104 | } 105 | if ($i == $pager_current) { 106 | $items[] = array( 107 | // Add the active class. 108 | 'class' => array('active'), 109 | 'data' => l($i, '#', array('fragment' => '', 'external' => TRUE)), 110 | ); 111 | } 112 | if ($i > $pager_current) { 113 | $items[] = array( 114 | 'data' => theme('pager_next', array( 115 | 'text' => $i, 116 | 'element' => $element, 117 | 'interval' => ($i - $pager_current), 118 | 'parameters' => $parameters, 119 | )), 120 | ); 121 | } 122 | } 123 | if ($i < $pager_max) { 124 | $items[] = array( 125 | 'class' => array('pager-ellipsis', 'disabled'), 126 | 'data' => '', 127 | ); 128 | } 129 | } 130 | // End generation. 131 | if ($li_next) { 132 | $items[] = array( 133 | 'class' => array('next'), 134 | 'data' => $li_next, 135 | ); 136 | } 137 | // @todo add theme setting for this. 138 | // if ($li_last) { 139 | // $items[] = array( 140 | // 'class' => array('pager-last'), 141 | // 'data' => $li_last, 142 | // ); 143 | // } 144 | return '
    ' . theme('item_list', array( 145 | 'items' => $items, 146 | 'attributes' => array('class' => array('pagination clearafter')), 147 | )) . '
    '; 148 | } 149 | return $output; 150 | } 151 | -------------------------------------------------------------------------------- /theme/system/page--admin.tpl.php: -------------------------------------------------------------------------------- 1 | 77 |
    78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 |
    86 | 87 |
    88 |
    89 | 90 | 91 |

    92 | 93 |
    94 | 95 | 96 | 97 | 98 |
    99 | 100 | 101 | 104 | 105 | 106 | 107 | 110 | 111 | 112 |
    113 | 114 | 117 | 118 |
    119 | -------------------------------------------------------------------------------- /theme/common.inc: -------------------------------------------------------------------------------- 1 | base_themes)) { 48 | foreach (array_keys($theme->base_themes) as $base_theme) { 49 | $value = lux_get_theme_info($base_theme, $key); 50 | } 51 | } 52 | if (!empty($themes[$theme_key])) { 53 | $info = $themes[$theme_key]->info; 54 | // Allow array traversal. 55 | $keys = explode('][', $key); 56 | foreach ($keys as $parent) { 57 | if (isset($info[$parent])) { 58 | $info = $info[$parent]; 59 | } 60 | else { 61 | $info = FALSE; 62 | } 63 | } 64 | if (is_array($value)) { 65 | if (!empty($info)) { 66 | if (!is_array($info)) { 67 | $info = array($info); 68 | } 69 | $value = drupal_array_merge_deep($value, $info); 70 | } 71 | } 72 | else { 73 | if (!empty($info)) { 74 | if (empty($value)) { 75 | $value = $info; 76 | } 77 | else { 78 | if (!is_array($value)) { 79 | $value = array($value); 80 | } 81 | if (!is_array($info)) { 82 | $info = array($info); 83 | } 84 | $value = drupal_array_merge_deep($value, $info); 85 | } 86 | } 87 | } 88 | } 89 | return $value; 90 | } 91 | // If no info $key was specified, just return the entire info array. 92 | return $theme->info; 93 | } 94 | } 95 | return FALSE; 96 | } 97 | 98 | /** 99 | * Helper function for including theme files. 100 | * 101 | * @param string $theme 102 | * Name of the theme to use for base path. 103 | * @param string $path 104 | * Path relative to $theme. 105 | */ 106 | function lux_include($theme, $path) { 107 | static $themes = array(); 108 | if (!isset($themes[$theme])) { 109 | $themes[$theme] = drupal_get_path('theme', $theme); 110 | } 111 | if ($themes[$theme] && ($file = DRUPAL_ROOT . '/' . $themes[$theme] . '/' . $path) && file_exists($file)) { 112 | include_once $file; 113 | } 114 | } 115 | 116 | /** 117 | * Colorize buttons based on the text value. 118 | * 119 | * @param string $text 120 | * Button text to search against. 121 | * 122 | * @return string 123 | * The specific button class to use or FALSE if not matched. 124 | */ 125 | function _lux_colorize_button($text) { 126 | // Text values containing these specific strings, which are matched first. 127 | $specific_strings = array( 128 | 'btn' => array( 129 | t('Download feature'), 130 | t('Clear all caches'), 131 | ), 132 | 'btn light-blue' => array( 133 | t('Add effect'), 134 | t('Add and configure'), 135 | ), 136 | 'btn orange' => array( 137 | t('View Changes'), 138 | ), 139 | 'btn green' => array( 140 | t('Save and add'), 141 | t('Add another item'), 142 | t('Update style'), 143 | ), 144 | ); 145 | // Text values containing these generic strings, which are matches last. 146 | $generic_strings = array( 147 | 'btn' => array( 148 | t('Save'), 149 | t('Confirm'), 150 | t('Submit'), 151 | t('Search'), 152 | t('Execute'), 153 | ), 154 | 'btn light-blue' => array( 155 | t('Add'), 156 | t('Preview'), 157 | t('Create'), 158 | t('Write'), 159 | ), 160 | 'btn orange' => array( 161 | t('Export'), 162 | t('Import'), 163 | t('Restore'), 164 | t('Rebuild'), 165 | t('Reset'), 166 | ), 167 | 'btn green' => array( 168 | t('Apply'), 169 | t('Update'), 170 | ), 171 | 'btn red' => array( 172 | t('Delete'), 173 | t('Remove'), 174 | ), 175 | ); 176 | // Specific matching first. 177 | foreach ($specific_strings as $class => $strings) { 178 | foreach ($strings as $string) { 179 | if (strpos(drupal_strtolower($text), drupal_strtolower($string)) !== FALSE) { 180 | $class = $class . ' waves-effect waves-light'; 181 | return $class; 182 | } 183 | } 184 | } 185 | // Generic matching last. 186 | foreach ($generic_strings as $class => $strings) { 187 | foreach ($strings as $string) { 188 | if (strpos(drupal_strtolower($text), drupal_strtolower($string)) !== FALSE) { 189 | $class = $class . ' waves-effect waves-light'; 190 | return $class; 191 | } 192 | } 193 | } 194 | return FALSE; 195 | } 196 | 197 | -------------------------------------------------------------------------------- /theme/system/page.tpl.php: -------------------------------------------------------------------------------- 1 | 77 |
    78 | 79 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 |
    127 | 128 |
    129 |
    130 | 131 | 132 |

    133 | 134 |
    135 | 136 | 137 | 138 | 139 |
    140 | 141 | 142 | 145 | 146 | 147 | 148 | 151 | 152 | 153 |
    154 | 155 | 158 | 159 |
    160 | -------------------------------------------------------------------------------- /template.php: -------------------------------------------------------------------------------- 1 | extremely important to turn off this feature on production websites.', array('!link' => url('admin/appearance/settings/' . $GLOBALS['theme']))), 'warning', FALSE); 54 | } 55 | 56 | // Custom theme hooks: 57 | // Do not define the `path` or `template`. 58 | $hook_theme = array( 59 | // 'bootstrap_links' => array( 60 | // 'variables' => array( 61 | // 'links' => array(), 62 | // 'attributes' => array(), 63 | // 'heading' => NULL, 64 | // ), 65 | // ), 66 | // 'bootstrap_btn_dropdown' => array( 67 | // 'variables' => array( 68 | // 'links' => array(), 69 | // 'attributes' => array(), 70 | // 'type' => NULL, 71 | // ), 72 | // ), 73 | // 'bootstrap_modal' => array( 74 | // 'variables' => array( 75 | // 'heading' => '', 76 | // 'body' => '', 77 | // 'footer' => '', 78 | // 'attributes' => array(), 79 | // 'html_heading' => FALSE, 80 | // ), 81 | // ), 82 | // 'bootstrap_accordion' => array( 83 | // 'variables' => array( 84 | // 'id' => '', 85 | // 'elements' => array(), 86 | // ), 87 | // ), 88 | // 'bootstrap_search_form_wrapper' => array( 89 | // 'render element' => 'element', 90 | // ), 91 | // 'bootstrap_panel' => array( 92 | // 'render element' => 'element', 93 | // ), 94 | ); 95 | 96 | // Process custom. This should be used again for any sub-themes. 97 | lux_hook_theme_complete($hook_theme, $theme, $path . '/theme'); 98 | 99 | // Process existing registry. Only invoke once from base theme. 100 | lux_hook_theme_complete($existing, $theme, $path . '/theme'); 101 | 102 | return $hook_theme; 103 | } 104 | 105 | /** 106 | * Discovers and fills missing elements in the theme registry. 107 | * 108 | * Adds the following: 109 | * - `includes` `*.vars.php` if variables file is found. 110 | * - `includes` `*.func.php` if function file is found. 111 | * - `function` if the function for $theme is found. 112 | * - `path` if template file is found. 113 | * - `template` if template file is found. 114 | */ 115 | function lux_hook_theme_complete(&$registry, $theme, $path) { 116 | $registry = drupal_array_merge_deep( 117 | $registry, 118 | lux_find_theme_includes($registry, '.vars.php', $path), 119 | lux_find_theme_includes($registry, '.func.php', $path), 120 | drupal_find_theme_functions($registry, array($theme)), 121 | drupal_find_theme_templates($registry, '.tpl.php', $path) 122 | ); 123 | // Post-process the theme registry. 124 | foreach ($registry as $hook => $info) { 125 | // Core find functions above does not carry over the base `theme path` when 126 | // finding suggestions. Add it to prevent notices for `theme` calls. 127 | if (!isset($info['theme path']) && isset($info['base hook'])) { 128 | $registry[$hook]['theme path'] = $path; 129 | } 130 | // Setup a default "context" variable. This allows #context to be passed 131 | // to every template and theme function. 132 | // @see https://drupal.org/node/2035055 133 | if (isset($info['variables']) && !isset($info['variables']['context'])) { 134 | $registry[$hook]['variables'] += array( 135 | 'context' => array(), 136 | ); 137 | } 138 | } 139 | } 140 | 141 | /** 142 | * Discovers and sets the path to each `THEME-HOOK.$extension` file. 143 | */ 144 | function lux_find_theme_includes($registry, $extension, $path) { 145 | $regex = '/' . str_replace('.', '\.', $extension) . '$/'; 146 | $files = drupal_system_listing($regex, $path, 'name', 0); 147 | 148 | $hook_includes = array(); 149 | foreach ($files as $name => $file) { 150 | // Chop off the remaining extension. 151 | if (($pos = strpos($name, '.')) !== FALSE) { 152 | $name = substr($name, 0, $pos); 153 | } 154 | // Transform "-" in filenames to "_" to match theme hook naming scheme. 155 | $hook = strtr($name, '-', '_'); 156 | // File to be included by core's theme function when the hook is invoked. 157 | // This only applies to base hooks. When hook derivatives are called 158 | // (those with a double "__"), it checks for the base hook, calls its 159 | // variable processors and ignores anything specific to the derivative. 160 | // Due to the way it works, It becomes redundant to give it a path that is 161 | // not a base hook. 162 | // @see https://drupal.org/node/939462 163 | if (isset($registry[$hook]) && !isset($registry[$hook]['base hook'])) { 164 | // Include the file so core can discover any containing functions. 165 | include_once DRUPAL_ROOT . '/' . $file->uri; 166 | $hook_includes[$hook]['includes'][] = $file->uri; 167 | } 168 | } 169 | 170 | return $hook_includes; 171 | } 172 | 173 | 174 | /** 175 | * Declare various hook_*_alter() hooks. 176 | * 177 | * hook_*_alter() implementations must live (via include) inside this file so 178 | * they are properly detected when drupal_alter() is invoked. 179 | */ 180 | // lux_include('lux', 'theme/alter.inc'); 181 | 182 | //Fieldset 183 | function lux_fieldset($variables) { 184 | $element = $variables ['element']; 185 | element_set_attributes($element, array('id')); 186 | _form_set_class($element, array('form-wrapper collapsible popout')); 187 | 188 | // $output = ''; 189 | // if (!empty($element ['#title'])) { 190 | // // Always wrap fieldset legends in a SPAN for CSS positioning. 191 | // $output .= '' . $element ['#title'] . ''; 192 | // } 193 | // $output .= '
    '; 194 | // if (!empty($element ['#description'])) { 195 | // $output .= '
    ' . $element ['#description'] . '
    '; 196 | // } 197 | // $output .= $element ['#children']; 198 | // if (isset($element ['#value'])) { 199 | // $output .= $element ['#value']; 200 | // } 201 | // $output .= '
    '; 202 | // $output .= "\n"; 203 | 204 | $output = ''; 205 | $output .= '
  • '; 206 | 207 | if (!empty($element ['#title'])) { 208 | // Always wrap fieldset legends in a SPAN for CSS positioning. 209 | $output .= '
    ' . $element ['#title'] . '
    '; 210 | } 211 | 212 | $output .= '
    '; 213 | if (!empty($element ['#description'])) { 214 | $output .= '
    ' . $element ['#description'] . '
    '; 215 | } 216 | $output .= $element ['#children']; 217 | 218 | if (isset($element ['#value'])) { 219 | $output .= $element ['#value']; 220 | } 221 | $output .= '
    '; 222 | $output .= "\n"; 223 | // $output .= '
  • 224 | //
    First
    225 | //

    Lorem ipsum dolor sit amet.

    226 | //
  • 227 | //
  • 228 | //
    First
    229 | //

    Lorem ipsum dolor sit amet.

    230 | //
  • 231 | //
  • 232 | //
    First
    233 | //

    Lorem ipsum dolor sit amet.

    234 | //
  • 235 | //
  • 236 | //
    First
    237 | //

    Lorem ipsum dolor sit amet.

    238 | //
  • '; 239 | // $output .= ''; 240 | return $output; 241 | } 242 | 243 | /** 244 | * Implements theme_admin_block(). 245 | * Adding classes to the administration blocks see issue #1869690. 246 | */ 247 | function lux_admin_block($variables) { 248 | $block = $variables['block']; 249 | $output = ''; 250 | 251 | // Don't display the block if it has no content to display. 252 | if (empty($block['show'])) { 253 | return $output; 254 | } 255 | 256 | if (!empty($block['path'])) { 257 | $output .= '
    '; 258 | } 259 | elseif (!empty($block['title'])) { 260 | $output .= '
    '; 261 | } 262 | else { 263 | $output .= '
    '; 264 | } 265 | 266 | if (!empty($block['title'])) { 267 | $output .= '

    ' . $block['title'] . '

    '; 268 | } 269 | 270 | if (!empty($block['content'])) { 271 | $output .= '
    ' . $block['content'] . '
    '; 272 | } 273 | else { 274 | $output .= '
    ' . $block['description'] . '
    '; 275 | } 276 | 277 | $output .= '
    '; 278 | 279 | return $output; 280 | 281 | } 282 | 283 | /** 284 | * Implements theme_admin_block_content(). 285 | * Adding classes to the administration blocks see issue #1869690. 286 | */ 287 | function lux_admin_block_content($variables) { 288 | $content = $variables['content']; 289 | $output = ''; 290 | 291 | if (!empty($content)) { 292 | $class = 'admin-list'; 293 | if ($compact = system_admin_compact_mode()) { 294 | $class .= ' compact'; 295 | } 296 | $output .= '
    '; 297 | foreach ($content as $item) { 298 | if (!isset($item['path'])) { 299 | $item['path']=''; 300 | } 301 | $output .= '
    ' . l($item['title'], $item['href'], $item['localized_options']) . '
    '; 302 | if (!$compact && isset($item['description'])) { 303 | $output .= '
    ' . filter_xss_admin($item['description']) . '
    '; 304 | } 305 | $output .= '
    '; 306 | } 307 | $output .= '
    '; 308 | } 309 | return $output; 310 | } 311 | -------------------------------------------------------------------------------- /font/material-design-icons/LICENSE.txt: -------------------------------------------------------------------------------- 1 | https://github.com/google/material-design-icons/blob/master/LICENSE 2 | https://github.com/FezVrasta/bootstrap-material-design/blob/master/fonts/LICENSE.txt 3 | 4 | Attribution-ShareAlike 4.0 International 5 | 6 | ======================================================================= 7 | 8 | Creative Commons Corporation ("Creative Commons") is not a law firm and 9 | does not provide legal services or legal advice. Distribution of 10 | Creative Commons public licenses does not create a lawyer-client or 11 | other relationship. Creative Commons makes its licenses and related 12 | information available on an "as-is" basis. Creative Commons gives no 13 | warranties regarding its licenses, any material licensed under their 14 | terms and conditions, or any related information. Creative Commons 15 | disclaims all liability for damages resulting from their use to the 16 | fullest extent possible. 17 | 18 | Using Creative Commons Public Licenses 19 | 20 | Creative Commons public licenses provide a standard set of terms and 21 | conditions that creators and other rights holders may use to share 22 | original works of authorship and other material subject to copyright 23 | and certain other rights specified in the public license below. The 24 | following considerations are for informational purposes only, are not 25 | exhaustive, and do not form part of our licenses. 26 | 27 | Considerations for licensors: Our public licenses are 28 | intended for use by those authorized to give the public 29 | permission to use material in ways otherwise restricted by 30 | copyright and certain other rights. Our licenses are 31 | irrevocable. Licensors should read and understand the terms 32 | and conditions of the license they choose before applying it. 33 | Licensors should also secure all rights necessary before 34 | applying our licenses so that the public can reuse the 35 | material as expected. Licensors should clearly mark any 36 | material not subject to the license. This includes other CC- 37 | licensed material, or material used under an exception or 38 | limitation to copyright. More considerations for licensors: 39 | wiki.creativecommons.org/Considerations_for_licensors 40 | 41 | Considerations for the public: By using one of our public 42 | licenses, a licensor grants the public permission to use the 43 | licensed material under specified terms and conditions. If 44 | the licensor's permission is not necessary for any reason--for 45 | example, because of any applicable exception or limitation to 46 | copyright--then that use is not regulated by the license. Our 47 | licenses grant only permissions under copyright and certain 48 | other rights that a licensor has authority to grant. Use of 49 | the licensed material may still be restricted for other 50 | reasons, including because others have copyright or other 51 | rights in the material. A licensor may make special requests, 52 | such as asking that all changes be marked or described. 53 | Although not required by our licenses, you are encouraged to 54 | respect those requests where reasonable. More_considerations 55 | for the public: 56 | wiki.creativecommons.org/Considerations_for_licensees 57 | 58 | ======================================================================= 59 | 60 | Creative Commons Attribution-ShareAlike 4.0 International Public 61 | License 62 | 63 | By exercising the Licensed Rights (defined below), You accept and agree 64 | to be bound by the terms and conditions of this Creative Commons 65 | Attribution-ShareAlike 4.0 International Public License ("Public 66 | License"). To the extent this Public License may be interpreted as a 67 | contract, You are granted the Licensed Rights in consideration of Your 68 | acceptance of these terms and conditions, and the Licensor grants You 69 | such rights in consideration of benefits the Licensor receives from 70 | making the Licensed Material available under these terms and 71 | conditions. 72 | 73 | 74 | Section 1 -- Definitions. 75 | 76 | a. Adapted Material means material subject to Copyright and Similar 77 | Rights that is derived from or based upon the Licensed Material 78 | and in which the Licensed Material is translated, altered, 79 | arranged, transformed, or otherwise modified in a manner requiring 80 | permission under the Copyright and Similar Rights held by the 81 | Licensor. For purposes of this Public License, where the Licensed 82 | Material is a musical work, performance, or sound recording, 83 | Adapted Material is always produced where the Licensed Material is 84 | synched in timed relation with a moving image. 85 | 86 | b. Adapter's License means the license You apply to Your Copyright 87 | and Similar Rights in Your contributions to Adapted Material in 88 | accordance with the terms and conditions of this Public License. 89 | 90 | c. BY-SA Compatible License means a license listed at 91 | creativecommons.org/compatiblelicenses, approved by Creative 92 | Commons as essentially the equivalent of this Public License. 93 | 94 | d. Copyright and Similar Rights means copyright and/or similar rights 95 | closely related to copyright including, without limitation, 96 | performance, broadcast, sound recording, and Sui Generis Database 97 | Rights, without regard to how the rights are labeled or 98 | categorized. For purposes of this Public License, the rights 99 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 100 | Rights. 101 | 102 | e. Effective Technological Measures means those measures that, in the 103 | absence of proper authority, may not be circumvented under laws 104 | fulfilling obligations under Article 11 of the WIPO Copyright 105 | Treaty adopted on December 20, 1996, and/or similar international 106 | agreements. 107 | 108 | f. Exceptions and Limitations means fair use, fair dealing, and/or 109 | any other exception or limitation to Copyright and Similar Rights 110 | that applies to Your use of the Licensed Material. 111 | 112 | g. License Elements means the license attributes listed in the name 113 | of a Creative Commons Public License. The License Elements of this 114 | Public License are Attribution and ShareAlike. 115 | 116 | h. Licensed Material means the artistic or literary work, database, 117 | or other material to which the Licensor applied this Public 118 | License. 119 | 120 | i. Licensed Rights means the rights granted to You subject to the 121 | terms and conditions of this Public License, which are limited to 122 | all Copyright and Similar Rights that apply to Your use of the 123 | Licensed Material and that the Licensor has authority to license. 124 | 125 | j. Licensor means the individual(s) or entity(ies) granting rights 126 | under this Public License. 127 | 128 | k. Share means to provide material to the public by any means or 129 | process that requires permission under the Licensed Rights, such 130 | as reproduction, public display, public performance, distribution, 131 | dissemination, communication, or importation, and to make material 132 | available to the public including in ways that members of the 133 | public may access the material from a place and at a time 134 | individually chosen by them. 135 | 136 | l. Sui Generis Database Rights means rights other than copyright 137 | resulting from Directive 96/9/EC of the European Parliament and of 138 | the Council of 11 March 1996 on the legal protection of databases, 139 | as amended and/or succeeded, as well as other essentially 140 | equivalent rights anywhere in the world. 141 | 142 | m. You means the individual or entity exercising the Licensed Rights 143 | under this Public License. Your has a corresponding meaning. 144 | 145 | 146 | Section 2 -- Scope. 147 | 148 | a. License grant. 149 | 150 | 1. Subject to the terms and conditions of this Public License, 151 | the Licensor hereby grants You a worldwide, royalty-free, 152 | non-sublicensable, non-exclusive, irrevocable license to 153 | exercise the Licensed Rights in the Licensed Material to: 154 | 155 | a. reproduce and Share the Licensed Material, in whole or 156 | in part; and 157 | 158 | b. produce, reproduce, and Share Adapted Material. 159 | 160 | 2. Exceptions and Limitations. For the avoidance of doubt, where 161 | Exceptions and Limitations apply to Your use, this Public 162 | License does not apply, and You do not need to comply with 163 | its terms and conditions. 164 | 165 | 3. Term. The term of this Public License is specified in Section 166 | 6(a). 167 | 168 | 4. Media and formats; technical modifications allowed. The 169 | Licensor authorizes You to exercise the Licensed Rights in 170 | all media and formats whether now known or hereafter created, 171 | and to make technical modifications necessary to do so. The 172 | Licensor waives and/or agrees not to assert any right or 173 | authority to forbid You from making technical modifications 174 | necessary to exercise the Licensed Rights, including 175 | technical modifications necessary to circumvent Effective 176 | Technological Measures. For purposes of this Public License, 177 | simply making modifications authorized by this Section 2(a) 178 | (4) never produces Adapted Material. 179 | 180 | 5. Downstream recipients. 181 | 182 | a. Offer from the Licensor -- Licensed Material. Every 183 | recipient of the Licensed Material automatically 184 | receives an offer from the Licensor to exercise the 185 | Licensed Rights under the terms and conditions of this 186 | Public License. 187 | 188 | b. Additional offer from the Licensor -- Adapted Material. 189 | Every recipient of Adapted Material from You 190 | automatically receives an offer from the Licensor to 191 | exercise the Licensed Rights in the Adapted Material 192 | under the conditions of the Adapter's License You apply. 193 | 194 | c. No downstream restrictions. You may not offer or impose 195 | any additional or different terms or conditions on, or 196 | apply any Effective Technological Measures to, the 197 | Licensed Material if doing so restricts exercise of the 198 | Licensed Rights by any recipient of the Licensed 199 | Material. 200 | 201 | 6. No endorsement. Nothing in this Public License constitutes or 202 | may be construed as permission to assert or imply that You 203 | are, or that Your use of the Licensed Material is, connected 204 | with, or sponsored, endorsed, or granted official status by, 205 | the Licensor or others designated to receive attribution as 206 | provided in Section 3(a)(1)(A)(i). 207 | 208 | b. Other rights. 209 | 210 | 1. Moral rights, such as the right of integrity, are not 211 | licensed under this Public License, nor are publicity, 212 | privacy, and/or other similar personality rights; however, to 213 | the extent possible, the Licensor waives and/or agrees not to 214 | assert any such rights held by the Licensor to the limited 215 | extent necessary to allow You to exercise the Licensed 216 | Rights, but not otherwise. 217 | 218 | 2. Patent and trademark rights are not licensed under this 219 | Public License. 220 | 221 | 3. To the extent possible, the Licensor waives any right to 222 | collect royalties from You for the exercise of the Licensed 223 | Rights, whether directly or through a collecting society 224 | under any voluntary or waivable statutory or compulsory 225 | licensing scheme. In all other cases the Licensor expressly 226 | reserves any right to collect such royalties. 227 | 228 | 229 | Section 3 -- License Conditions. 230 | 231 | Your exercise of the Licensed Rights is expressly made subject to the 232 | following conditions. 233 | 234 | a. Attribution. 235 | 236 | 1. If You Share the Licensed Material (including in modified 237 | form), You must: 238 | 239 | a. retain the following if it is supplied by the Licensor 240 | with the Licensed Material: 241 | 242 | i. identification of the creator(s) of the Licensed 243 | Material and any others designated to receive 244 | attribution, in any reasonable manner requested by 245 | the Licensor (including by pseudonym if 246 | designated); 247 | 248 | ii. a copyright notice; 249 | 250 | iii. a notice that refers to this Public License; 251 | 252 | iv. a notice that refers to the disclaimer of 253 | warranties; 254 | 255 | v. a URI or hyperlink to the Licensed Material to the 256 | extent reasonably practicable; 257 | 258 | b. indicate if You modified the Licensed Material and 259 | retain an indication of any previous modifications; and 260 | 261 | c. indicate the Licensed Material is licensed under this 262 | Public License, and include the text of, or the URI or 263 | hyperlink to, this Public License. 264 | 265 | 2. You may satisfy the conditions in Section 3(a)(1) in any 266 | reasonable manner based on the medium, means, and context in 267 | which You Share the Licensed Material. For example, it may be 268 | reasonable to satisfy the conditions by providing a URI or 269 | hyperlink to a resource that includes the required 270 | information. 271 | 272 | 3. If requested by the Licensor, You must remove any of the 273 | information required by Section 3(a)(1)(A) to the extent 274 | reasonably practicable. 275 | 276 | b. ShareAlike. 277 | 278 | In addition to the conditions in Section 3(a), if You Share 279 | Adapted Material You produce, the following conditions also apply. 280 | 281 | 1. The Adapter's License You apply must be a Creative Commons 282 | license with the same License Elements, this version or 283 | later, or a BY-SA Compatible License. 284 | 285 | 2. You must include the text of, or the URI or hyperlink to, the 286 | Adapter's License You apply. You may satisfy this condition 287 | in any reasonable manner based on the medium, means, and 288 | context in which You Share Adapted Material. 289 | 290 | 3. You may not offer or impose any additional or different terms 291 | or conditions on, or apply any Effective Technological 292 | Measures to, Adapted Material that restrict exercise of the 293 | rights granted under the Adapter's License You apply. 294 | 295 | 296 | Section 4 -- Sui Generis Database Rights. 297 | 298 | Where the Licensed Rights include Sui Generis Database Rights that 299 | apply to Your use of the Licensed Material: 300 | 301 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 302 | to extract, reuse, reproduce, and Share all or a substantial 303 | portion of the contents of the database; 304 | 305 | b. if You include all or a substantial portion of the database 306 | contents in a database in which You have Sui Generis Database 307 | Rights, then the database in which You have Sui Generis Database 308 | Rights (but not its individual contents) is Adapted Material, 309 | 310 | including for purposes of Section 3(b); and 311 | c. You must comply with the conditions in Section 3(a) if You Share 312 | all or a substantial portion of the contents of the database. 313 | 314 | For the avoidance of doubt, this Section 4 supplements and does not 315 | replace Your obligations under this Public License where the Licensed 316 | Rights include other Copyright and Similar Rights. 317 | 318 | 319 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 320 | 321 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 322 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 323 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 324 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 325 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 326 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 327 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 328 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 329 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 330 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 331 | 332 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 333 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 334 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 335 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 336 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 337 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 338 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 339 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 340 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 341 | 342 | c. The disclaimer of warranties and limitation of liability provided 343 | above shall be interpreted in a manner that, to the extent 344 | possible, most closely approximates an absolute disclaimer and 345 | waiver of all liability. 346 | 347 | 348 | Section 6 -- Term and Termination. 349 | 350 | a. This Public License applies for the term of the Copyright and 351 | Similar Rights licensed here. However, if You fail to comply with 352 | this Public License, then Your rights under this Public License 353 | terminate automatically. 354 | 355 | b. Where Your right to use the Licensed Material has terminated under 356 | Section 6(a), it reinstates: 357 | 358 | 1. automatically as of the date the violation is cured, provided 359 | it is cured within 30 days of Your discovery of the 360 | violation; or 361 | 362 | 2. upon express reinstatement by the Licensor. 363 | 364 | For the avoidance of doubt, this Section 6(b) does not affect any 365 | right the Licensor may have to seek remedies for Your violations 366 | of this Public License. 367 | 368 | c. For the avoidance of doubt, the Licensor may also offer the 369 | Licensed Material under separate terms or conditions or stop 370 | distributing the Licensed Material at any time; however, doing so 371 | will not terminate this Public License. 372 | 373 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 374 | License. 375 | 376 | 377 | Section 7 -- Other Terms and Conditions. 378 | 379 | a. The Licensor shall not be bound by any additional or different 380 | terms or conditions communicated by You unless expressly agreed. 381 | 382 | b. Any arrangements, understandings, or agreements regarding the 383 | Licensed Material not stated herein are separate from and 384 | independent of the terms and conditions of this Public License. 385 | 386 | 387 | Section 8 -- Interpretation. 388 | 389 | a. For the avoidance of doubt, this Public License does not, and 390 | shall not be interpreted to, reduce, limit, restrict, or impose 391 | conditions on any use of the Licensed Material that could lawfully 392 | be made without permission under this Public License. 393 | 394 | b. To the extent possible, if any provision of this Public License is 395 | deemed unenforceable, it shall be automatically reformed to the 396 | minimum extent necessary to make it enforceable. If the provision 397 | cannot be reformed, it shall be severed from this Public License 398 | without affecting the enforceability of the remaining terms and 399 | conditions. 400 | 401 | c. No term or condition of this Public License will be waived and no 402 | failure to comply consented to unless expressly agreed to by the 403 | Licensor. 404 | 405 | d. Nothing in this Public License constitutes or may be interpreted 406 | as a limitation upon, or waiver of, any privileges and immunities 407 | that apply to the Licensor or You, including from the legal 408 | processes of any jurisdiction or authority. 409 | 410 | 411 | ======================================================================= 412 | 413 | Creative Commons is not a party to its public licenses. 414 | Notwithstanding, Creative Commons may elect to apply one of its public 415 | licenses to material it publishes and in those instances will be 416 | considered the "Licensor." Except for the limited purpose of indicating 417 | that material is shared under a Creative Commons public license or as 418 | otherwise permitted by the Creative Commons policies published at 419 | creativecommons.org/policies, Creative Commons does not authorize the 420 | use of the trademark "Creative Commons" or any other trademark or logo 421 | of Creative Commons without its prior written consent including, 422 | without limitation, in connection with any unauthorized modifications 423 | to any of its public licenses or any other arrangements, 424 | understandings, or agreements concerning use of licensed material. For 425 | the avoidance of doubt, this paragraph does not form part of the public 426 | licenses. 427 | 428 | Creative Commons may be contacted at creativecommons.org. 429 | -------------------------------------------------------------------------------- /luxor/font/material-design-icons/LICENSE.txt: -------------------------------------------------------------------------------- 1 | https://github.com/google/material-design-icons/blob/master/LICENSE 2 | https://github.com/FezVrasta/bootstrap-material-design/blob/master/fonts/LICENSE.txt 3 | 4 | Attribution-ShareAlike 4.0 International 5 | 6 | ======================================================================= 7 | 8 | Creative Commons Corporation ("Creative Commons") is not a law firm and 9 | does not provide legal services or legal advice. Distribution of 10 | Creative Commons public licenses does not create a lawyer-client or 11 | other relationship. Creative Commons makes its licenses and related 12 | information available on an "as-is" basis. Creative Commons gives no 13 | warranties regarding its licenses, any material licensed under their 14 | terms and conditions, or any related information. Creative Commons 15 | disclaims all liability for damages resulting from their use to the 16 | fullest extent possible. 17 | 18 | Using Creative Commons Public Licenses 19 | 20 | Creative Commons public licenses provide a standard set of terms and 21 | conditions that creators and other rights holders may use to share 22 | original works of authorship and other material subject to copyright 23 | and certain other rights specified in the public license below. The 24 | following considerations are for informational purposes only, are not 25 | exhaustive, and do not form part of our licenses. 26 | 27 | Considerations for licensors: Our public licenses are 28 | intended for use by those authorized to give the public 29 | permission to use material in ways otherwise restricted by 30 | copyright and certain other rights. Our licenses are 31 | irrevocable. Licensors should read and understand the terms 32 | and conditions of the license they choose before applying it. 33 | Licensors should also secure all rights necessary before 34 | applying our licenses so that the public can reuse the 35 | material as expected. Licensors should clearly mark any 36 | material not subject to the license. This includes other CC- 37 | licensed material, or material used under an exception or 38 | limitation to copyright. More considerations for licensors: 39 | wiki.creativecommons.org/Considerations_for_licensors 40 | 41 | Considerations for the public: By using one of our public 42 | licenses, a licensor grants the public permission to use the 43 | licensed material under specified terms and conditions. If 44 | the licensor's permission is not necessary for any reason--for 45 | example, because of any applicable exception or limitation to 46 | copyright--then that use is not regulated by the license. Our 47 | licenses grant only permissions under copyright and certain 48 | other rights that a licensor has authority to grant. Use of 49 | the licensed material may still be restricted for other 50 | reasons, including because others have copyright or other 51 | rights in the material. A licensor may make special requests, 52 | such as asking that all changes be marked or described. 53 | Although not required by our licenses, you are encouraged to 54 | respect those requests where reasonable. More_considerations 55 | for the public: 56 | wiki.creativecommons.org/Considerations_for_licensees 57 | 58 | ======================================================================= 59 | 60 | Creative Commons Attribution-ShareAlike 4.0 International Public 61 | License 62 | 63 | By exercising the Licensed Rights (defined below), You accept and agree 64 | to be bound by the terms and conditions of this Creative Commons 65 | Attribution-ShareAlike 4.0 International Public License ("Public 66 | License"). To the extent this Public License may be interpreted as a 67 | contract, You are granted the Licensed Rights in consideration of Your 68 | acceptance of these terms and conditions, and the Licensor grants You 69 | such rights in consideration of benefits the Licensor receives from 70 | making the Licensed Material available under these terms and 71 | conditions. 72 | 73 | 74 | Section 1 -- Definitions. 75 | 76 | a. Adapted Material means material subject to Copyright and Similar 77 | Rights that is derived from or based upon the Licensed Material 78 | and in which the Licensed Material is translated, altered, 79 | arranged, transformed, or otherwise modified in a manner requiring 80 | permission under the Copyright and Similar Rights held by the 81 | Licensor. For purposes of this Public License, where the Licensed 82 | Material is a musical work, performance, or sound recording, 83 | Adapted Material is always produced where the Licensed Material is 84 | synched in timed relation with a moving image. 85 | 86 | b. Adapter's License means the license You apply to Your Copyright 87 | and Similar Rights in Your contributions to Adapted Material in 88 | accordance with the terms and conditions of this Public License. 89 | 90 | c. BY-SA Compatible License means a license listed at 91 | creativecommons.org/compatiblelicenses, approved by Creative 92 | Commons as essentially the equivalent of this Public License. 93 | 94 | d. Copyright and Similar Rights means copyright and/or similar rights 95 | closely related to copyright including, without limitation, 96 | performance, broadcast, sound recording, and Sui Generis Database 97 | Rights, without regard to how the rights are labeled or 98 | categorized. For purposes of this Public License, the rights 99 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 100 | Rights. 101 | 102 | e. Effective Technological Measures means those measures that, in the 103 | absence of proper authority, may not be circumvented under laws 104 | fulfilling obligations under Article 11 of the WIPO Copyright 105 | Treaty adopted on December 20, 1996, and/or similar international 106 | agreements. 107 | 108 | f. Exceptions and Limitations means fair use, fair dealing, and/or 109 | any other exception or limitation to Copyright and Similar Rights 110 | that applies to Your use of the Licensed Material. 111 | 112 | g. License Elements means the license attributes listed in the name 113 | of a Creative Commons Public License. The License Elements of this 114 | Public License are Attribution and ShareAlike. 115 | 116 | h. Licensed Material means the artistic or literary work, database, 117 | or other material to which the Licensor applied this Public 118 | License. 119 | 120 | i. Licensed Rights means the rights granted to You subject to the 121 | terms and conditions of this Public License, which are limited to 122 | all Copyright and Similar Rights that apply to Your use of the 123 | Licensed Material and that the Licensor has authority to license. 124 | 125 | j. Licensor means the individual(s) or entity(ies) granting rights 126 | under this Public License. 127 | 128 | k. Share means to provide material to the public by any means or 129 | process that requires permission under the Licensed Rights, such 130 | as reproduction, public display, public performance, distribution, 131 | dissemination, communication, or importation, and to make material 132 | available to the public including in ways that members of the 133 | public may access the material from a place and at a time 134 | individually chosen by them. 135 | 136 | l. Sui Generis Database Rights means rights other than copyright 137 | resulting from Directive 96/9/EC of the European Parliament and of 138 | the Council of 11 March 1996 on the legal protection of databases, 139 | as amended and/or succeeded, as well as other essentially 140 | equivalent rights anywhere in the world. 141 | 142 | m. You means the individual or entity exercising the Licensed Rights 143 | under this Public License. Your has a corresponding meaning. 144 | 145 | 146 | Section 2 -- Scope. 147 | 148 | a. License grant. 149 | 150 | 1. Subject to the terms and conditions of this Public License, 151 | the Licensor hereby grants You a worldwide, royalty-free, 152 | non-sublicensable, non-exclusive, irrevocable license to 153 | exercise the Licensed Rights in the Licensed Material to: 154 | 155 | a. reproduce and Share the Licensed Material, in whole or 156 | in part; and 157 | 158 | b. produce, reproduce, and Share Adapted Material. 159 | 160 | 2. Exceptions and Limitations. For the avoidance of doubt, where 161 | Exceptions and Limitations apply to Your use, this Public 162 | License does not apply, and You do not need to comply with 163 | its terms and conditions. 164 | 165 | 3. Term. The term of this Public License is specified in Section 166 | 6(a). 167 | 168 | 4. Media and formats; technical modifications allowed. The 169 | Licensor authorizes You to exercise the Licensed Rights in 170 | all media and formats whether now known or hereafter created, 171 | and to make technical modifications necessary to do so. The 172 | Licensor waives and/or agrees not to assert any right or 173 | authority to forbid You from making technical modifications 174 | necessary to exercise the Licensed Rights, including 175 | technical modifications necessary to circumvent Effective 176 | Technological Measures. For purposes of this Public License, 177 | simply making modifications authorized by this Section 2(a) 178 | (4) never produces Adapted Material. 179 | 180 | 5. Downstream recipients. 181 | 182 | a. Offer from the Licensor -- Licensed Material. Every 183 | recipient of the Licensed Material automatically 184 | receives an offer from the Licensor to exercise the 185 | Licensed Rights under the terms and conditions of this 186 | Public License. 187 | 188 | b. Additional offer from the Licensor -- Adapted Material. 189 | Every recipient of Adapted Material from You 190 | automatically receives an offer from the Licensor to 191 | exercise the Licensed Rights in the Adapted Material 192 | under the conditions of the Adapter's License You apply. 193 | 194 | c. No downstream restrictions. You may not offer or impose 195 | any additional or different terms or conditions on, or 196 | apply any Effective Technological Measures to, the 197 | Licensed Material if doing so restricts exercise of the 198 | Licensed Rights by any recipient of the Licensed 199 | Material. 200 | 201 | 6. No endorsement. Nothing in this Public License constitutes or 202 | may be construed as permission to assert or imply that You 203 | are, or that Your use of the Licensed Material is, connected 204 | with, or sponsored, endorsed, or granted official status by, 205 | the Licensor or others designated to receive attribution as 206 | provided in Section 3(a)(1)(A)(i). 207 | 208 | b. Other rights. 209 | 210 | 1. Moral rights, such as the right of integrity, are not 211 | licensed under this Public License, nor are publicity, 212 | privacy, and/or other similar personality rights; however, to 213 | the extent possible, the Licensor waives and/or agrees not to 214 | assert any such rights held by the Licensor to the limited 215 | extent necessary to allow You to exercise the Licensed 216 | Rights, but not otherwise. 217 | 218 | 2. Patent and trademark rights are not licensed under this 219 | Public License. 220 | 221 | 3. To the extent possible, the Licensor waives any right to 222 | collect royalties from You for the exercise of the Licensed 223 | Rights, whether directly or through a collecting society 224 | under any voluntary or waivable statutory or compulsory 225 | licensing scheme. In all other cases the Licensor expressly 226 | reserves any right to collect such royalties. 227 | 228 | 229 | Section 3 -- License Conditions. 230 | 231 | Your exercise of the Licensed Rights is expressly made subject to the 232 | following conditions. 233 | 234 | a. Attribution. 235 | 236 | 1. If You Share the Licensed Material (including in modified 237 | form), You must: 238 | 239 | a. retain the following if it is supplied by the Licensor 240 | with the Licensed Material: 241 | 242 | i. identification of the creator(s) of the Licensed 243 | Material and any others designated to receive 244 | attribution, in any reasonable manner requested by 245 | the Licensor (including by pseudonym if 246 | designated); 247 | 248 | ii. a copyright notice; 249 | 250 | iii. a notice that refers to this Public License; 251 | 252 | iv. a notice that refers to the disclaimer of 253 | warranties; 254 | 255 | v. a URI or hyperlink to the Licensed Material to the 256 | extent reasonably practicable; 257 | 258 | b. indicate if You modified the Licensed Material and 259 | retain an indication of any previous modifications; and 260 | 261 | c. indicate the Licensed Material is licensed under this 262 | Public License, and include the text of, or the URI or 263 | hyperlink to, this Public License. 264 | 265 | 2. You may satisfy the conditions in Section 3(a)(1) in any 266 | reasonable manner based on the medium, means, and context in 267 | which You Share the Licensed Material. For example, it may be 268 | reasonable to satisfy the conditions by providing a URI or 269 | hyperlink to a resource that includes the required 270 | information. 271 | 272 | 3. If requested by the Licensor, You must remove any of the 273 | information required by Section 3(a)(1)(A) to the extent 274 | reasonably practicable. 275 | 276 | b. ShareAlike. 277 | 278 | In addition to the conditions in Section 3(a), if You Share 279 | Adapted Material You produce, the following conditions also apply. 280 | 281 | 1. The Adapter's License You apply must be a Creative Commons 282 | license with the same License Elements, this version or 283 | later, or a BY-SA Compatible License. 284 | 285 | 2. You must include the text of, or the URI or hyperlink to, the 286 | Adapter's License You apply. You may satisfy this condition 287 | in any reasonable manner based on the medium, means, and 288 | context in which You Share Adapted Material. 289 | 290 | 3. You may not offer or impose any additional or different terms 291 | or conditions on, or apply any Effective Technological 292 | Measures to, Adapted Material that restrict exercise of the 293 | rights granted under the Adapter's License You apply. 294 | 295 | 296 | Section 4 -- Sui Generis Database Rights. 297 | 298 | Where the Licensed Rights include Sui Generis Database Rights that 299 | apply to Your use of the Licensed Material: 300 | 301 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 302 | to extract, reuse, reproduce, and Share all or a substantial 303 | portion of the contents of the database; 304 | 305 | b. if You include all or a substantial portion of the database 306 | contents in a database in which You have Sui Generis Database 307 | Rights, then the database in which You have Sui Generis Database 308 | Rights (but not its individual contents) is Adapted Material, 309 | 310 | including for purposes of Section 3(b); and 311 | c. You must comply with the conditions in Section 3(a) if You Share 312 | all or a substantial portion of the contents of the database. 313 | 314 | For the avoidance of doubt, this Section 4 supplements and does not 315 | replace Your obligations under this Public License where the Licensed 316 | Rights include other Copyright and Similar Rights. 317 | 318 | 319 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 320 | 321 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 322 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 323 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 324 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 325 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 326 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 327 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 328 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 329 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 330 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 331 | 332 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 333 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 334 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 335 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 336 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 337 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 338 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 339 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 340 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 341 | 342 | c. The disclaimer of warranties and limitation of liability provided 343 | above shall be interpreted in a manner that, to the extent 344 | possible, most closely approximates an absolute disclaimer and 345 | waiver of all liability. 346 | 347 | 348 | Section 6 -- Term and Termination. 349 | 350 | a. This Public License applies for the term of the Copyright and 351 | Similar Rights licensed here. However, if You fail to comply with 352 | this Public License, then Your rights under this Public License 353 | terminate automatically. 354 | 355 | b. Where Your right to use the Licensed Material has terminated under 356 | Section 6(a), it reinstates: 357 | 358 | 1. automatically as of the date the violation is cured, provided 359 | it is cured within 30 days of Your discovery of the 360 | violation; or 361 | 362 | 2. upon express reinstatement by the Licensor. 363 | 364 | For the avoidance of doubt, this Section 6(b) does not affect any 365 | right the Licensor may have to seek remedies for Your violations 366 | of this Public License. 367 | 368 | c. For the avoidance of doubt, the Licensor may also offer the 369 | Licensed Material under separate terms or conditions or stop 370 | distributing the Licensed Material at any time; however, doing so 371 | will not terminate this Public License. 372 | 373 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 374 | License. 375 | 376 | 377 | Section 7 -- Other Terms and Conditions. 378 | 379 | a. The Licensor shall not be bound by any additional or different 380 | terms or conditions communicated by You unless expressly agreed. 381 | 382 | b. Any arrangements, understandings, or agreements regarding the 383 | Licensed Material not stated herein are separate from and 384 | independent of the terms and conditions of this Public License. 385 | 386 | 387 | Section 8 -- Interpretation. 388 | 389 | a. For the avoidance of doubt, this Public License does not, and 390 | shall not be interpreted to, reduce, limit, restrict, or impose 391 | conditions on any use of the Licensed Material that could lawfully 392 | be made without permission under this Public License. 393 | 394 | b. To the extent possible, if any provision of this Public License is 395 | deemed unenforceable, it shall be automatically reformed to the 396 | minimum extent necessary to make it enforceable. If the provision 397 | cannot be reformed, it shall be severed from this Public License 398 | without affecting the enforceability of the remaining terms and 399 | conditions. 400 | 401 | c. No term or condition of this Public License will be waived and no 402 | failure to comply consented to unless expressly agreed to by the 403 | Licensor. 404 | 405 | d. Nothing in this Public License constitutes or may be interpreted 406 | as a limitation upon, or waiver of, any privileges and immunities 407 | that apply to the Licensor or You, including from the legal 408 | processes of any jurisdiction or authority. 409 | 410 | 411 | ======================================================================= 412 | 413 | Creative Commons is not a party to its public licenses. 414 | Notwithstanding, Creative Commons may elect to apply one of its public 415 | licenses to material it publishes and in those instances will be 416 | considered the "Licensor." Except for the limited purpose of indicating 417 | that material is shared under a Creative Commons public license or as 418 | otherwise permitted by the Creative Commons policies published at 419 | creativecommons.org/policies, Creative Commons does not authorize the 420 | use of the trademark "Creative Commons" or any other trademark or logo 421 | of Creative Commons without its prior written consent including, 422 | without limitation, in connection with any unauthorized modifications 423 | to any of its public licenses or any other arrangements, 424 | understandings, or agreements concerning use of licensed material. For 425 | the avoidance of doubt, this paragraph does not form part of the public 426 | licenses. 427 | 428 | Creative Commons may be contacted at creativecommons.org. 429 | -------------------------------------------------------------------------------- /luxor/css/style.css: -------------------------------------------------------------------------------- 1 | /* aegir specific styling from Eldir 2 | /** 3 | * Eldir for Drupal 7 4 | * Designed for the Aegir hosting system. 5 | * 6 | * By Young Hahn (young@developmentseed.org) 7 | */ 8 | 9 | /* Resets */ 10 | body, 11 | 12 | table, 13 | table *, 14 | 15 | dl, dt, dd, 16 | 17 | ul.menu, 18 | ul.menu li, 19 | ul.menu li.leaf, 20 | ul.links, 21 | ul.links li, 22 | 23 | div.admin div.left, 24 | div.admin div.right, 25 | div.admin-panel, 26 | div.admin-panel div.body, 27 | div.admin-panel p.description, 28 | 29 | div.block ul, 30 | div.breadcrumb, 31 | div.item-list ul li, 32 | 33 | div.form-item, 34 | div.form-radios, 35 | div.form-checkboxes, 36 | div.form-radios div.form-item, 37 | div.form-checkboxes div.form-item, 38 | 39 | div.hosting-task-retry, 40 | 41 | h1, h2, h3, h4, h5, h6, 42 | ul, ol, li, 43 | p, blockquote { 44 | 45 | background-image:none; 46 | background-color:transparent; 47 | 48 | margin:0px; 49 | padding:0px; 50 | } 51 | 52 | ul, ol, 53 | .item-list ul, .item-list ol { 54 | margin-left: 1em; 55 | } 56 | 57 | .block ul, .block ol, .block li { 58 | list-style:none; 59 | list-style-image:none; 60 | } 61 | 62 | html, body { 63 | height: 100%; 64 | } 65 | 66 | body.aegir { 67 | color:#444; 68 | background:#fff; 69 | margin:0px; 70 | padding:0px; 71 | min-width: 950px; 72 | } 73 | 74 | a { 75 | color:#468; 76 | text-decoration:none; 77 | font-weight: 300; 78 | } 79 | 80 | a:hover { text-decoration:underline; } 81 | 82 | /* No underline for links that are likely to have good hover classes anyway. */ 83 | ul.menu li a:hover, 84 | ul.links li a:hover { text-decoration:none; } 85 | 86 | /* Reverse color text/links */ 87 | div.reverse { color:#fff; } 88 | div.reverse a { color:#fff; } 89 | 90 | h1, h2 { 91 | font-size:15px; 92 | font-weight:bold; 93 | padding:0px 0px 4px; 94 | border-bottom:1px solid #e8e8e8; 95 | } 96 | 97 | h3, h4, h5, h6 { 98 | color:#888; 99 | font-weight:bold; 100 | margin:0px 0px 5px; 101 | } 102 | 103 | dl, 104 | dd { margin:0px 0px 10px; } 105 | 106 | dt { 107 | margin:10px 0px 0px; 108 | font-weight:bold; 109 | } 110 | 111 | p { margin:0px 0px 10px; } 112 | 113 | div.limiter { 114 | width:940px; 115 | margin:0px auto; 116 | } 117 | 118 | ul.primary { 119 | line-height: inherit; 120 | } 121 | 122 | /** 123 | * LINKS ============================================================== 124 | */ 125 | ul.primary, 126 | ul.primary li.active a, 127 | ul.secondary, 128 | ul.secondary li.active a, 129 | ul.tabs li, 130 | ul.tabs li a, 131 | ul.links li, 132 | ul.links li a { 133 | background:transparent; 134 | border:0px; 135 | margin:0px; 136 | padding:0px; 137 | } 138 | 139 | ul.tabs li, 140 | ul.tabs li a, 141 | ul.links li, 142 | ul.links li a { float:left; } 143 | 144 | /** 145 | * LISTS ============================================================== 146 | */ 147 | div.node div.content ul, 148 | div#console div.messages ul { padding-left:20px; } 149 | 150 | div.node div.content ul li, 151 | div#console div.messages ul li { list-style: square; } 152 | 153 | /** 154 | * HEADER ============================================================= 155 | */ 156 | div#header { 157 | background:#0277bd; 158 | } 159 | 160 | div#header div.logo, 161 | div#header div.logo a, 162 | div#header div.site-name { float:left; } 163 | 164 | .logo img { 165 | width: 120px; 166 | margin-right: 10px; 167 | margin-top: 18px; 168 | } 169 | 170 | div#header div.site-name { 171 | font-size:18px; 172 | font-weight: 200; 173 | letter-spacing:-1px; 174 | color:#e1f5fe; 175 | line-height:40px; 176 | margin:20px 0px; 177 | padding:0px 0px 0px 19px; 178 | border-left:1px solid #039be5; 179 | } 180 | 181 | div#header form { 182 | width:370px; 183 | height:40px; 184 | line-height:40px; 185 | padding:20px 0px; 186 | float:right; 187 | text-align:right; 188 | } 189 | 190 | div#header form * { vertical-align:middle; } 191 | 192 | div#header form input.form-text { width:60%; } 193 | 194 | /** 195 | * NAVIGATION ========================================================= 196 | */ 197 | div#navigation { 198 | border-top:1px solid #258; 199 | background:#039be5; 200 | } 201 | 202 | div#navigation div.breadcrumb { 203 | line-height:40px; 204 | font-size:11px; 205 | float:left; 206 | } 207 | 208 | div#navigation ul.links { 209 | padding:5px 0px 0px; 210 | float:right; 211 | } 212 | 213 | div#navigation ul.links a { 214 | font-size:14px; 215 | font-weight: 300; 216 | line-height:25px; 217 | padding:5px 20px; 218 | margin-right:1px; 219 | } 220 | 221 | div#navigation ul.links a:hover { 222 | color:#bbdefb; 223 | } 224 | 225 | div#navigation ul.links li.active a, 226 | div#navigation ul.links li a.active { 227 | color:#bbdefb; 228 | border-bottom: 5px solid #bbdefb; 229 | } 230 | 231 | /** 232 | * HEADER REGION ====================================================== 233 | */ 234 | div#header-region { 235 | padding:20px 0px 0px; 236 | background:#fff; } 237 | 238 | div#header-region h2.page-title { 239 | border:0px; 240 | padding:0px 0px 10px; 241 | letter-spacing:-2px; 242 | 243 | line-height:40px; 244 | font-size:32px; 245 | font-weight:200; 246 | } 247 | 248 | div#header-region h2.page-title span.label { 249 | font-size:13px; 250 | font-weight:normal; 251 | letter-spacing:0px; 252 | 253 | float:left; 254 | margin:5px 10px 5px 0px; 255 | padding:0px 10px; 256 | line-height:30px; 257 | 258 | background:#666; 259 | color:#fff; 260 | } 261 | 262 | #page ul.tabs, 263 | div#header-region ul.tabs { clear:both; } 264 | 265 | div#header-region ul.tabs li { height:30px; } 266 | 267 | #page ul.tabs li a, 268 | div#header-region ul.tabs li a { 269 | padding:5px 15px; 270 | font-size:11px; 271 | } 272 | 273 | div#header-region ul.tabs li a:hover { 274 | background:#666; 275 | color:#fff; 276 | } 277 | 278 | div#header-region ul.tabs li.active a, 279 | div#header-region ul.tabs li a.active { 280 | padding: 5px 15px; 281 | background:#fff; 282 | color:#444; 283 | border-bottom:1px solid #fff; 284 | } 285 | 286 | /** 287 | * PAGE LAYOUT ======================================================== 288 | */ 289 | div#page { 290 | background:#f5f5f5; 291 | padding-bottom:40px; 292 | } 293 | 294 | div#page div.limiter { background:url(images/page.png) repeat-y; } 295 | 296 | body.wide div#page div.limiter { 297 | padding-right:190px; 298 | width:750px; 299 | } 300 | 301 | div#main { 302 | float:left; 303 | width:600px; 304 | padding:10px; 305 | clear:both; 306 | } 307 | 308 | body.wide div#main { 309 | background:#fff; 310 | float:none; 311 | width:950px; 312 | } 313 | 314 | div.sidebar { 315 | float:right; 316 | width:300px; 317 | padding:10px; 318 | } 319 | 320 | #page ul.tabs { 321 | height:29px; 322 | border-bottom:1px solid #e8e8e8; 323 | background:#fff; 324 | } 325 | 326 | /** 327 | * BLOCKS > SIDEBAR =================================================== 328 | */ 329 | div.sidebar div.block { margin:0px 0px 20px; } 330 | 331 | div.sidebar div.block div.content { padding:5px 0px 0px; } 332 | 333 | div.sidebar div.item-list { margin:0px 0px 10px; } 334 | 335 | div.sidebar ul.menu li, 336 | div.sidebar div.item-list li { 337 | list-style:none; 338 | font-size:11px; 339 | padding:0px; 340 | margin:0px 0px 5px; 341 | background:#fff; 342 | } 343 | 344 | div.sidebar div.item-list li, 345 | div.sidebar ul.menu a { 346 | display:block; 347 | padding:2px 10px; 348 | } 349 | 350 | div.sidebar ul.menu ul { padding-left:10px; } 351 | 352 | div.sidebar ul.menu li li { 353 | margin:0px; 354 | border-top:1px solid #f0f0f0; 355 | } 356 | 357 | div.sidebar ul.menu a:hover { 358 | color:#fff; 359 | background:#6ac; 360 | } 361 | 362 | /* Corner rounding logic */ 363 | div.sidebar ul.menu li, 364 | div.sidebar ul.menu a, 365 | div.sidebar div.item-list li { 366 | -moz-border-radius:3px; 367 | -webkit-border-radius: 3px; 368 | } 369 | 370 | div.sidebar ul.menu li.expanded a { 371 | -moz-border-radius:0px; 372 | -moz-border-radius-topleft:3px; 373 | -moz-border-radius-topright:3px; 374 | 375 | -webkit-border-radius: 0px; 376 | -webkit-border-top-left-radius:3px; 377 | -webkit-border-top-right-radius:3px; 378 | } 379 | 380 | div.sidebar ul.menu li.expanded li, 381 | div.sidebar ul.menu li.expanded li a { 382 | -moz-border-radius:0px; 383 | -webkit-border-radius: 0px; 384 | } 385 | 386 | /** 387 | * CONSOLE MESSAGES =================================================== 388 | */ 389 | div#console { 390 | font-size:15px; 391 | border-top:1px solid #111; 392 | border-bottom:1px solid #fff; 393 | padding:9px 0px; 394 | background:#222 url(images/sprite.png) 0px -240px repeat-x; 395 | } 396 | 397 | div#console div.messages { 398 | color:#8cf; 399 | text-shadow:0px 0px 15px #06c; 400 | background:#024; 401 | 402 | margin:5px 0px; 403 | padding:9px; 404 | 405 | border-style:solid; 406 | border-color:#048; 407 | border-width:1px 1px 1px 6px; 408 | } 409 | 410 | div#console div.error { 411 | background-color:#400; 412 | border-color:#800; 413 | color:#fa4; 414 | text-shadow:0px 0px 15px #c30; 415 | } 416 | 417 | div#console div.warning { 418 | background-color:#630; 419 | border-color:#a50; 420 | color:#fe4; 421 | text-shadow:0px 0px 15px #c80; 422 | } 423 | 424 | div#console div.ok { 425 | background-color:#040; 426 | border-color:#080; 427 | color:#cfc; 428 | text-shadow:0px 0px 15px #0c6; 429 | } 430 | 431 | /* Exceptions */ 432 | /* make sure devel module messages are readable */ 433 | div.krumo-root, div.krumo-root a { 434 | color: black; 435 | text-shadow: none; 436 | } 437 | 438 | /** 439 | * FOOTER ============================================================= 440 | */ 441 | #footer { 442 | background:#666; 443 | padding:20px 0px; 444 | line-height:40px; 445 | height:40px; 446 | } 447 | 448 | #footer ul.links { float:right; } 449 | 450 | /** 451 | * FORMS ============================================================== 452 | */ 453 | /*select, 454 | textarea, 455 | input.form-text { 456 | width:90%; 457 | font: 13px/20px "Helvetica Neue",Arial,sans-serif; 458 | padding:3px; 459 | border:1px solid #ddd; 460 | background-color:#fff; 461 | } 462 | 463 | select:focus, 464 | textarea:focus, 465 | input.form-text:focus { 466 | background-color:#f0f8ff; 467 | border-color:#abc; 468 | } 469 | 470 | div.reverse select, 471 | div.reverse textarea, 472 | div.reverse input.form-text { 473 | background-color:#124; 474 | color:#fff; 475 | border-color:#258; 476 | } 477 | 478 | html.js input.form-autocomplete { background-position:100% 4px; } 479 | html.js input.throbbing { background-position: 100% -16px; } 480 | 481 | td select, 482 | td input.form-text, 483 | div.container-inline select, 484 | div.container-inline input.form-text { width:auto; } 485 | 486 | input.form-submit { 487 | font: bold 13px/20px "Helvetica Neue",Arial,sans-serif; 488 | border:0px; 489 | padding:5px 10px; 490 | color:#fff; 491 | background:#666; 492 | 493 | cursor:pointer; 494 | 495 | -moz-border-radius:3px; 496 | -webkit-border-radius: 3px; 497 | } 498 | 499 | 500 | input.form-submit[disabled] { 501 | color:#ddd; 502 | background:#eee; 503 | cursor: default; 504 | } 505 | 506 | 507 | body.page-admin input.form-submit, 508 | body.page-admin #views-ajax-pad .form-submit { 509 | padding: 0 4px; 510 | } 511 | 512 | div.reverse input.form-submit { background:#124; } 513 | 514 | form div.form-item { 515 | clear:both; 516 | position:relative; 517 | margin:0px; 518 | padding:10px 10px 9px; 519 | border-bottom:1px solid #e8e8e8; 520 | } 521 | 522 | form div.form-item-labeled { padding-left:180px; } 523 | 524 | form div.form-item-labeled label { 525 | font-size:11px; 526 | position:absolute; 527 | left:0px; 528 | width:170px; 529 | } 530 | 531 | /* Exceptions */ 532 | body.page-admin div.form-item, 533 | dl.multiselect div.form-item, 534 | div.sidebar form div.form-item, 535 | form#system-theme-settings div.form-item, 536 | form div.form-item div.form-item, 537 | form table div.form-item, 538 | form div.container-inline div.form-item, 539 | form div.form-checkboxes div.form-item, 540 | form div.form-radios div.form-item { 541 | clear:none; 542 | padding:0px; 543 | border:0px; 544 | } 545 | 546 | body.page-admin div.form-item label, 547 | dl.multiselect div.form-item label, 548 | div.sidebar form div.form-item label, 549 | form div.form-item label.option, 550 | form#system-theme-settings div.form-item label, 551 | form div.form-item div.form-item label, 552 | form table div.form-item label, 553 | form div.container-inline div.form-item label, 554 | form div.form-checkboxes div.form-item label, 555 | form div.form-radios div.form-item label { 556 | width:auto; 557 | position:static; 558 | } 559 | 560 | div.form-item label.option, 561 | div.form-item label.option * { 562 | font-size:1em; 563 | vertical-align:middle; 564 | } 565 | 566 | div.form-item div.description { 567 | margin:5px 0px; 568 | line-height:15px; 569 | font-size:11px; 570 | color:#666; 571 | } 572 | */ 573 | /* Fieldsets... what a nightmare */ 574 | body.aegir fieldset { 575 | background:#f8f8f8; 576 | 577 | margin:10px 0px; 578 | padding:25px 10px 10px; 579 | border:0px; 580 | 581 | display:block; 582 | -moz-border-radius:3px; 583 | -webkit-border-radius: 3px; 584 | } 585 | 586 | body.aegir fieldset.collapsible { 587 | position:relative; 588 | padding:25px 0px 0px; 589 | } 590 | 591 | body.aegir fieldset.collapsible div.fieldset-wrapper { padding:10px; } 592 | 593 | html.js body.aegir fieldset.collapsed { 594 | height:0px; 595 | margin:10px 0px; 596 | background:transparent; 597 | } 598 | 599 | body.aegir fieldset legend { 600 | font-size:11px; 601 | font-weight:bold; 602 | margin-bottom:-25px; 603 | } 604 | .collapsible-body { 605 | background: #fff; 606 | } 607 | body.aegir fieldset.collapsible legend { margin:0px; } 608 | 609 | body.aegir fieldset.collapsible legend a, 610 | html.js body.aegir fieldset.collapsible legend a { 611 | position:absolute; 612 | right:0px; 613 | left:0px; 614 | 615 | background:#eee; 616 | font-size:11px; 617 | 618 | display:block; 619 | padding:2px 10px 3px; 620 | } 621 | 622 | body.aegir fieldset.collapsible legend a { 623 | -moz-border-radius-topleft:3px; 624 | -moz-border-radius-topright:3px; 625 | -webkit-border-top-left-radius: 3px; 626 | -webkit-border-top-right-radius: 3px; 627 | } 628 | 629 | body.aegir fieldset.collapsed legend a { 630 | -moz-border-radius:3px; 631 | -webkit-border-radius:3px; 632 | } 633 | 634 | /** 635 | * NODES ============================================================== 636 | */ 637 | div.node { 638 | margin:0px 0px 10px; 639 | padding:0px 0px 9px; 640 | border-bottom:1px solid #e8e8e8; 641 | } 642 | 643 | div.sticky { 644 | padding:4px 4px 9px; 645 | border:1px solid #e0e6e8; 646 | background:#f0f6f8; 647 | } 648 | 649 | /* Cancel out all the particulars for full node pages */ 650 | body.node-page div.node { 651 | background:transparent; 652 | border:0px; 653 | padding:0px; 654 | margin:0px; 655 | } 656 | 657 | div.node h2 { 658 | border:0px; 659 | font-size:24px; 660 | line-height:30px; 661 | font-weight:normal; 662 | } 663 | 664 | div.node h2 span.label { 665 | float:left; 666 | font-size:9px; 667 | font-weight:bold; 668 | line-height:20px; 669 | 670 | margin:5px 10px 0px 0px; 671 | padding:0px 5px; 672 | 673 | background:#666; 674 | color:#fff; 675 | } 676 | 677 | div.node div.submitted { 678 | color:#263238; 679 | margin:0px 0px 10px; 680 | font-size:11px; 681 | } 682 | 683 | body.node-page div.node div.submitted { 684 | border-bottom:1px solid #e8e8e8; 685 | padding:0px 0px 9px; 686 | } 687 | 688 | div.node ul.links { 689 | float:right; 690 | font-size:11px; 691 | } 692 | 693 | div.node ul.links li a { 694 | border-right:1px solid #e8e8e8; 695 | padding:0px 10px; 696 | } 697 | 698 | div.node ul.links li.last a { 699 | border:0px; 700 | padding-right:0px; 701 | } 702 | 703 | /** 704 | * AEGIR-SPECIFIC ===================================================== 705 | */ 706 | div#hosting-wizard-form, 707 | div.error, 708 | div.message { width:auto; } 709 | 710 | #hosting-task-log { clear:both; } 711 | 712 | table, 713 | table.hosting-table { 714 | font-size:11px; 715 | width:100%; 716 | } 717 | 718 | table, 719 | table tr, 720 | table td, 721 | table th, 722 | table thead, 723 | table body, 724 | table.hosting-table, 725 | table.hosting-table tr, 726 | table.hosting-table td, 727 | table.hosting-table th, 728 | table.hosting-table thead, 729 | table.hosting-table tbody { 730 | border:0px; 731 | padding:0px; 732 | } 733 | 734 | table th, 735 | table td, 736 | table.hosting-table th, 737 | table.hosting-table td { 738 | padding:4px 5px 5px; 739 | border-top:1px solid #fff; 740 | } 741 | 742 | .modalframe .ui-dialog-titlebar, 743 | table th, 744 | table.hosting-table th { 745 | font-size:11px; 746 | background:#666 !important; 747 | } 748 | 749 | table th.active, 750 | table.hosting-table th.active { background:#555 !important; } 751 | 752 | table th, 753 | table th a { color:#fff; } 754 | 755 | table tr.even td { background-color:#fcfcfc; } 756 | table tr.odd td { background-color:#f8f8f8; } 757 | 758 | #hosting-wizard-account-details, 759 | #hosting-wizard-account-passwd { 760 | float:none; 761 | width:auto; 762 | padding:0px; 763 | } 764 | 765 | /* Node info */ 766 | #hosting-task-list { 767 | width:290px; 768 | float:right; 769 | } 770 | 771 | #hosting-server-info, 772 | #hosting-platform-info, 773 | #hosting-package-info, 774 | #hosting-site-info, 775 | #hosting-task-info, 776 | #hosting-site-edit-info { 777 | font-size:11px; 778 | background:#f8f8f8; 779 | float:left; 780 | padding:9px; 781 | border:1px solid #e8e8e8; 782 | margin:0px 0px 10px; 783 | width:280px; 784 | } 785 | 786 | table.views-table { clear: both } 787 | 788 | #hosting-site-edit-info, 789 | #hosting-site-edit-info div.form-item { 790 | float:none; 791 | width:auto; 792 | } 793 | 794 | #hosting-site-edit-info div.form-item, 795 | body.ntype-task #page div.node div#hosting-task-info div.form-item, 796 | body.aegir #page div.node div.content div.form-item { 797 | float:none; 798 | position:relative; 799 | margin:0px; 800 | padding:5px 5px 4px 100px; 801 | border-bottom:1px solid #e8e8e8; 802 | } 803 | 804 | #hosting-site-edit-info div.form-item:last-child, 805 | body.ntype-task #page div.node div#hosting-task-info div.form-item:last-child, 806 | body.aegir #page div.node div.content div.form-item:last-child { 807 | border:0px; 808 | padding-bottom:5px; 809 | } 810 | 811 | body.aegir #page div.node div.content div.form-item label { 812 | position:absolute; 813 | left:0px; 814 | width:95px; 815 | white-space:nowrap; 816 | overflow:hidden; 817 | font-size:9px; 818 | display:block; 819 | } 820 | 821 | /* Exceptions */ 822 | body.ntype-task #page div.node div.content div.form-item, /* This exception sucks */ 823 | body.aegir #page #hosting-site-list div.form-item, 824 | body.aegir #page #hosting-task-list div.form-item { 825 | position:static; 826 | float:none; 827 | display:block; 828 | margin:0px; 829 | padding:0px; 830 | } 831 | 832 | /* Forms */ 833 | .hosting-queue-frequency, 834 | .hosting-queue-frequency-head { 835 | text-align:left; 836 | padding-right:inherit; 837 | } 838 | 839 | div.hosting-queue-frequency { 840 | font-size:10px; 841 | text-align:left; 842 | white-space:nowrap; 843 | } 844 | 845 | div.hosting-queue-frequency input, 846 | div.hosting-queue-frequency select { 847 | padding:2px; 848 | font-size:10px; 849 | } 850 | 851 | #edit-tasks-frequency-items-wrapper { 852 | float: left; 853 | margin: 0 0 5px 0; 854 | } 855 | 856 | #edit-cron-frequency-ticks-wrapper input, 857 | #edit-tasks-frequency-items-wrapper input, 858 | #edit-tasks-frequency-ticks-wrapper input { 859 | width: 3em; 860 | margin: 0 5px 0 0; 861 | } 862 | 863 | #edit-cron-frequency-ticks-wrapper { 864 | float: left; 865 | } 866 | 867 | #edit-tasks-frequency-ticks-wrapper { 868 | float: left; 869 | clear: both; 870 | } 871 | 872 | #edit-tasks-frequency-unit-wrapper, 873 | #edit-cron-frequency-unit-wrapper { 874 | float: left; 875 | } 876 | 877 | /* Keep labels from being truncated */ 878 | body.aegir #page div.node div.content div.form-item label { 879 | width: auto; 880 | } 881 | 882 | body.aegir #page div.node div.content div.form-radios div.form-item, 883 | body.aegir #page div.node div.content div.form-checkboxes div.form-item, 884 | body.aegir #page div.node div.content div.form-option { 885 | border-bottom: none; 886 | padding-bottom: 1.5em; 887 | } 888 | 889 | /* Task buttons */ 890 | a.hosting-button-enabled, 891 | .hosting-button-disabled { 892 | margin: 0 4px; 893 | text-align: center; 894 | height: 20px; 895 | width : 4em; 896 | 897 | padding-top: 0.1em; 898 | padding-bottom: 0.1em; 899 | 900 | -moz-border-radius:3px; 901 | -webkit-border-radius: 3px; 902 | } 903 | 904 | a.hosting-button-enabled:hover { 905 | background: #bbdefb; 906 | } 907 | 908 | a.hosting-button-enabled { 909 | color:#fff; 910 | background:#009CE0; 911 | } 912 | 913 | .hosting-button-disabled { 914 | color:#eee; 915 | background:#aaa; 916 | } 917 | 918 | a.hosting-button-stop { 919 | background-color:#e66; 920 | } 921 | 922 | a.hosting-button-stop:hover { 923 | background-color:#c44; 924 | } 925 | /** 926 | * CORE ADMIN ========================================================= 927 | */ 928 | body.path-node-add dt, 929 | dl.admin-list dt, 930 | div.admin-panel h3 { font-size:18px; } 931 | 932 | body.path-node-add dd, 933 | dl.admin-list dd { 934 | padding-bottom:9px; 935 | border-bottom:1px solid #e8e8e8; 936 | } 937 | 938 | div.admin-panel { 939 | border:1px solid #e8e8e8; 940 | padding:9px; 941 | margin:10px 0px; 942 | background:#f8f8f8; 943 | } 944 | 945 | div.admin-panel dl.admin-list dt { font-size:13px; } 946 | 947 | /* Split screens */ 948 | div.admin .right, 949 | div.admin .left { 950 | padding:0px; 951 | width:265px; 952 | } 953 | 954 | /* Put some space between multiselect options. See admin/content/node */ 955 | dl.multiselect div.form-item { margin:0px 0px 10px; } 956 | 957 | /* Override Garland-specific styling for the available updates table */ 958 | .update table.version .version-links ul { 959 | float: right; 960 | } 961 | 962 | .update table.version .version-links ul li { 963 | float: none; 964 | padding-left: 1em; 965 | } 966 | 967 | .update table.version .version-links ul li a { 968 | float: none; 969 | } 970 | 971 | /** 972 | * ERROR PAGES ======================================================== 973 | */ 974 | body.error-page div.page-content { 975 | border:1px solid #e8e8e8; 976 | background:#f8f8f8; 977 | padding:19px; 978 | font-size:18px; 979 | text-align:center; 980 | } 981 | 982 | /* Modal frame */ 983 | 984 | .modalframe { 985 | color: #000000; 986 | background-color: #ffffff; 987 | border: 2px solid black; 988 | } 989 | 990 | .modalframe .ui-dialog-titlebar { 991 | border : 1px solid black; 992 | 993 | } 994 | 995 | 996 | /** 997 | * Login forms 998 | */ 999 | body.not-logged-in.page-user { 1000 | background: #16527f; 1001 | background: linear-gradient(#16527f, #151f3e); 1002 | min-height: 100%; 1003 | min-width: 350px; 1004 | } 1005 | body.not-logged-in.page-user div.form-item { 1006 | padding: 10px 0; 1007 | border: none; 1008 | } 1009 | body.not-logged-in.page-user h2.title { 1010 | display: none; 1011 | } 1012 | #auth_box #the_logo { 1013 | border: none; 1014 | } 1015 | #auth_box #middle_part { 1016 | border-radius: 10px; 1017 | box-shadow: 0 0 15px 3px rgba(0, 0, 0, .25); 1018 | } 1019 | 1020 | 1021 | /** 1022 | * Permissions table ================================================== 1023 | */ 1024 | #user-admin-perm table { 1025 | table-layout: fixed; 1026 | width: 100%; 1027 | } 1028 | 1029 | #user-admin-perm th { 1030 | width: 100%; 1031 | } 1032 | 1033 | #user-admin-perm th:first-of-type { 1034 | width: 170px; 1035 | } 1036 | 1037 | .sticky-header{ 1038 | z-index: 1; 1039 | } 1040 | /** 1041 | * Form Overrides ================================================ 1042 | */ 1043 | body.page-admin div.form-item label, dl.multiselect div.form-item label, div.sidebar form div.form-item label, form div.form-item label.option, form#system-theme-settings div.form-item label, form div.form-item div.form-item label, form table div.form-item label, form div.container-inline div.form-item label, form div.form-checkboxes div.form-item label, form div.form-radios div.form-item label { 1044 | position: relative !important; 1045 | } 1046 | 1047 | /** 1048 | * Hosting Tasks overrides ================================================ 1049 | */ 1050 | .aegir tr.hosting-processing .hosting-status { 1051 | background: url('../images/loading.gif'); 1052 | background-size: 14%; 1053 | } 1054 | .aegir tr.hosting-success, .aegir #hosting-package-comparison td.hosting-package-upgrade { 1055 | background: #e8f5e9 !important; 1056 | color: #002F7B !important; 1057 | } 1058 | .aegir tr.hosting-warning, .aegir #hosting-package-comparison td.hosting-package-missing { 1059 | background: #ffff8d !important; 1060 | } 1061 | .aegir tbody tr:first-of-type td { 1062 | border-top: none; 1063 | } 1064 | .aegir tbody tr td, .aegir thead tr th { 1065 | border-radius: 0; 1066 | } 1067 | .aegir thead tr th { 1068 | font-weight: 400; 1069 | border-top: none !important; 1070 | } 1071 | .aegir .table.hosting-table td { 1072 | border: none; 1073 | } 1074 | /*Pure table overrides*/ 1075 | .aegir table thead th { 1076 | background-color: #546e7a !important; 1077 | } 1078 | /*Aegir Specific Views*/ 1079 | #views-form-hosting-site-list-page-sites .collapsible-body { 1080 | width: 100%; 1081 | } 1082 | #views-form-hosting-site-list-page-sites .btn[value='Execute'] { 1083 | float: right; 1084 | } 1085 | .form-item-operation div.select-wrapper { 1086 | display: inline-block; 1087 | } 1088 | .form-item-operation div.select-wrapper i { 1089 | top: 5px; 1090 | right: -20px; 1091 | } 1092 | 1093 | --------------------------------------------------------------------------------