From 43490912af331eebe8b5eb785908bc416e81b5e7 Mon Sep 17 00:00:00 2001 From: Joe Corall Date: Mon, 23 Oct 2023 18:05:23 -0400 Subject: [PATCH] Initial commit. --- README.md | 10 + color/color.inc | 130 ++++++++ color/preview.css | 287 ++++++++++++++++++ color/preview.es6.js | 46 +++ color/preview.html | 66 ++++ color/preview.js | 52 ++++ composer.json | 9 + config/install/isle.settings.yml | 58 ++++ ...bootstrap_barrio_subtheme_account_menu.yml | 24 ++ ....bootstrap_barrio_subtheme_breadcrumbs.yml | 19 ++ ...lock.bootstrap_barrio_subtheme_content.yml | 19 ++ ...k.block.bootstrap_barrio_subtheme_help.yml | 19 ++ ...ck.bootstrap_barrio_subtheme_main_menu.yml | 24 ++ ...ock.bootstrap_barrio_subtheme_messages.yml | 19 ++ ...k.bootstrap_barrio_subtheme_page_title.yml | 17 ++ ...lock.bootstrap_barrio_subtheme_powered.yml | 19 ++ ..._barrio_subtheme_primary_admin_actions.yml | 17 ++ ...ap_barrio_subtheme_primary_local_tasks.yml | 19 ++ ...rap_barrio_subtheme_search_form_narrow.yml | 20 ++ ...strap_barrio_subtheme_search_form_wide.yml | 20 ++ ..._barrio_subtheme_secondary_local_tasks.yml | 19 ++ ...ootstrap_barrio_subtheme_site_branding.yml | 22 ++ config/schema/isle.schema.yml | 5 + css/colors.css | 114 +++++++ css/search.css | 9 + css/style.css | 8 + isle.info.yml | 34 +++ isle.libraries.yml | 41 +++ isle.theme | 64 ++++ js/global.js | 16 + js/search.js | 17 ++ logo.svg | 1 + screenshot.png | Bin 0 -> 45268 bytes templates/_page.html.twig | 162 ++++++++++ templates/block--facets.html.twig | 61 ++++ 35 files changed, 1467 insertions(+) create mode 100644 README.md create mode 100644 color/color.inc create mode 100644 color/preview.css create mode 100644 color/preview.es6.js create mode 100644 color/preview.html create mode 100644 color/preview.js create mode 100644 composer.json create mode 100644 config/install/isle.settings.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_account_menu.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_breadcrumbs.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_content.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_help.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_main_menu.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_messages.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_page_title.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_powered.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_primary_admin_actions.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_primary_local_tasks.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_search_form_narrow.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_search_form_wide.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_secondary_local_tasks.yml create mode 100644 config/optional/block.block.bootstrap_barrio_subtheme_site_branding.yml create mode 100644 config/schema/isle.schema.yml create mode 100644 css/colors.css create mode 100644 css/search.css create mode 100644 css/style.css create mode 100644 isle.info.yml create mode 100644 isle.libraries.yml create mode 100644 isle.theme create mode 100644 js/global.js create mode 100644 js/search.js create mode 100644 logo.svg create mode 100644 screenshot.png create mode 100644 templates/_page.html.twig create mode 100644 templates/block--facets.html.twig diff --git a/README.md b/README.md new file mode 100644 index 0000000..f1244e1 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Islandora Theme + +## License + +In following with GPLv2, this repo was generated as a subtheme of [drupal/bootstrap_barrio](https://www.drupal.org/project/bootstrap_barrio). +The most notable changes after forking have been: + +- Custom template for the facets blocks +- mobile styling for the /search page + diff --git a/color/color.inc b/color/color.inc new file mode 100644 index 0000000..36e2587 --- /dev/null +++ b/color/color.inc @@ -0,0 +1,130 @@ + [ + 'top' => t('Header background top'), + 'bottom' => t('Header background bottom'), + 'bg' => t('Main background'), + 'sidebar' => t('Sidebar background'), + 'sidebarborders' => t('Sidebar borders'), + 'footer' => t('Footer background'), + 'button' => t('Primary button background'), + 'buttonhover' => t('Primary button hover'), + 'titleslogan' => t('Title and slogan'), + 'text' => t('Text color'), + 'link' => t('Link color'), + ], + // Pre-defined color schemes. + 'schemes' => [ + 'default' => [ + 'title' => t('Blue Lagoon (default)'), + 'colors' => [ + 'top' => '#055a8e', + 'bottom' => '#1d84c3', + 'bg' => '#ffffff', + 'sidebar' => '#f6f6f2', + 'sidebarborders' => '#f9f9f9', + 'footer' => '#292929', + 'button' => '#007bff', + 'buttonhover' => '#0256b1', + 'titleslogan' => '#fffeff', + 'text' => '#3b3b3b', + 'link' => '#0071b3', + ], + ], + 'firehouse' => [ + 'title' => t('Firehouse'), + 'colors' => [ + 'top' => '#cd2d2d', + 'bottom' => '#d64e4e', + 'bg' => '#ffffff', + 'sidebar' => '#f1f4f0', + 'sidebarborders' => '#ededed', + 'footer' => '#1f1d1c', + 'button' => '#d6121f', + 'buttonhover' => '#a90f19', + 'titleslogan' => '#fffeff', + 'text' => '#888888', + 'link' => '#d6121f', + ], + ], + 'ice' => [ + 'title' => t('Ice'), + 'colors' => [ + 'top' => '#d0d0d0', + 'bottom' => '#c2c4c5', + 'bg' => '#ffffff', + 'sidebar' => '#ffffff', + 'sidebarborders' => '#cccccc', + 'footer' => '#016b83', + 'button' => '#019dbf', + 'buttonhover' => '#016c83', + 'titleslogan' => '#000000', + 'text' => '#4a4a4a', + 'link' => '#019dbf', + ], + ], + 'plum' => [ + 'title' => t('Plum'), + 'colors' => [ + 'top' => '#4c1c58', + 'bottom' => '#593662', + 'bg' => '#fffdf7', + 'sidebar' => '#edede7', + 'sidebarborders' => '#e7e7e7', + 'footer' => '#2c2c28', + 'button' => '#9d408d', + 'buttonhover' => '#77316b', + 'titleslogan' => '#ffffff', + 'text' => '#301313', + 'link' => '#9d408d', + ], + ], + 'slate' => [ + 'title' => t('Slate'), + 'colors' => [ + 'top' => '#4a4a4a', + 'bottom' => '#4e4e4e', + 'bg' => '#ffffff', + 'sidebar' => '#ffffff', + 'sidebarborders' => '#d0d0d0', + 'footer' => '#161617', + 'button' => '#0073b6', + 'buttonhover' => '#00517f', + 'titleslogan' => '#ffffff', + 'text' => '#3b3b3b', + 'link' => '#0073b6', + ], + ], + ], + + // CSS files (excluding @import) to rewrite with new color scheme. + 'css' => [ + 'css/colors.css', + ], + + // Files to copy. + 'copy' => [ + 'logo.svg', + ], + + // Preview files. + 'preview_library' => 'isle/color.preview', + 'preview_html' => 'color/preview.html', + + // Attachments. + '#attached' => [ + 'drupalSettings' => [ + 'color' => [ + // Put the logo path into JavaScript for the live preview. + 'logo' => theme_get_setting('logo.url', 'isle'), + ], + ], + ], +]; diff --git a/color/preview.css b/color/preview.css new file mode 100644 index 0000000..7b09fb2 --- /dev/null +++ b/color/preview.css @@ -0,0 +1,287 @@ +/* ---------- Preview Styles ----------- */ + +.js .color-preview { + clear: both; + float: none !important; +} + +.color-preview { + background-color: #fff; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 14px; + line-height: 1.5; + overflow: hidden; + word-wrap: break-word; + margin-bottom: 10px; +} + +.color-preview-header-top { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + position: relative; + min-height: 40px; +} + +.color-preview-header { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + position: relative; +} + +.color-preview-logo { + float: left; + padding: 15px; +} + +.color-preview-site-name { + color: #686868; + font-weight: normal; + font-size: 1.821em; + line-height: 1; + margin-bottom: 30px; + margin-left: 15px; + /* LTR */ + padding-top: 34px; +} + +[dir="rtl"] .color-preview-site-name { + margin-left: 0; + margin-right: 15px; +} + +.color-preview-main-menu { + clear: both; + padding: 0 15px 3px; +} + +.color-preview-main-menu-links a { + color: #d9d9d9; + padding: 0.6em 1em 0.4em; +} + +.color-preview-main-menu-links { + font-size: 0.929em; + margin: 0; + padding: 0; +} + +.color-preview-main-menu-links a { + color: #333; + background: #ccc; + background: rgba(255, 255, 255, 0.7); + text-shadow: 0 1px #eee; + border-top-left-radius: 8px; + border-top-right-radius: 8px; +} + +.color-preview-main-menu-links a:hover, +.color-preview-main-menu-links a:focus { + background: #eee; + background: rgba(255, 255, 255, 0.95); + text-decoration: none; + cursor: pointer; +} + +.color-preview-main-menu-links li a.is-active { + background: #fff; + border-bottom: none; +} + +.color-preview-main-menu-links li { + display: inline; + list-style-type: none; + padding: 0.6em 0 0.4em; +} + +.preview-button { + display: inline-block; + min-width: 80px; + margin-top: 10px; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + border-left-color: transparent; + padding: .375rem .75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: .25rem; + color: white !important; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; +} + +.color-preview-sidebar, +.color-preview-content { + display: inline; + float: left; + /* LTR */ + position: relative; +} + +[dir="rtl"] .color-preview-sidebar, +[dir="rtl"] .color-preview-content { + float: right; +} + +.color-preview-sidebar { + margin-left: 15px; + /* LTR */ + width: 210px; +} + +[dir="rtl"] .color-preview-sidebar { + margin-left: 0; + margin-right: 15px; +} + +.color-preview-content { + margin-left: 30px; + /* LTR */ + width: 26.5em; +} + +[dir="rtl"] .color-preview-content { + margin-left: 0; + margin-right: 30px; +} + +.color-preview-sidebar .preview-block { + border: 1px solid; + margin: 20px 0; + padding: 15px 20px; +} + +.color-preview-sidebar h2 { + border-bottom: 1px solid #d6d6d6; + font-weight: normal; + margin-top: 0; + margin-right: 0; + margin-left: 0; + padding-bottom: 5px; + text-shadow: 0 1px 0 #fff; +} + +.color-preview .preview-block .preview-content { + margin-top: 1em; +} + +.color-preview .preview-block-menu .preview-content, +.color-preview .preview-block-menu .preview-content ul { + margin-top: 0; +} + +.color-preview-main { + margin-bottom: 40px; + margin-top: 20px; +} + +.color-preview-page-title { + font-size: 2em; + font-weight: normal; + line-height: 1; + margin: 1em 0 0.5em; +} + +.color-preview-footer-wrapper { + color: #c0c0c0; + color: rgba(255, 255, 255, 0.65); + display: block !important; + font-size: 0.857em; + padding: 20px 20px 25px; +} + +.color-preview-footer-wrapper a { + color: #fcfcfc; + color: rgba(255, 255, 255, 0.8); +} + +.color-preview-footer-wrapper a:hover, +.color-preview-footer-wrapper a:focus { + color: #fefefe; + color: rgba(255, 255, 255, 0.95); + text-decoration: underline; +} + +.color-preview-footer-wrapper .preview-footer-column { + display: inline; + float: left; + /* LTR */ + padding: 0 10px; + position: relative; + width: 220px; +} + +[dir="rtl"] .color-preview-footer-wrapper .preview-footer-column { + float: right; +} + +.color-preview-footer-wrapper .preview-block { + border: 1px solid #444; + border-color: rgba(255, 255, 255, 0.1); + margin: 20px 0; + padding: 10px; +} + +.color-preview-footer-columns .preview-block-menu { + border: none; + margin: 0; + padding: 0; +} + +.color-preview-footer-columns h2 { + border-bottom: 1px solid #555; + border-color: rgba(255, 255, 255, 0.15); + padding-bottom: 3px; + text-transform: uppercase; +} + +.color-preview-footer-columns .preview-content { + margin-top: 0; +} + +.color-preview-footer-columns .preview-content ul { + margin-left: 0; + /* LTR */ + padding-left: 0; + /* LTR */ +} + +[dir="rtl"] .color-preview-footer-columns .preview-content ul { + margin-right: 0; + padding-right: 0; +} + +.color-preview-footer-columns .preview-content li { + list-style: none; + list-style-image: none; + margin: 0; + padding: 0; +} + +.color-preview-footer-columns .preview-content li a { + border-bottom: 1px solid #555; + border-color: rgba(255, 255, 255, 0.15); + display: block; + line-height: 1.2; + padding: 0.8em 2px 0.8em 20px; + /* LTR */ + text-indent: -15px; +} + +[dir="rtl"] .color-preview-footer-columns .preview-content li a { + padding-left: 2px; + padding-right: 20px; +} + +.color-preview-footer-columns .preview-content li a:hover, +.color-preview-footer-columns .preview-content li a:focus { + background-color: #1f1f21; + background-color: rgba(255, 255, 255, 0.05); + text-decoration: none; +} diff --git a/color/preview.es6.js b/color/preview.es6.js new file mode 100644 index 0000000..b2b126d --- /dev/null +++ b/color/preview.es6.js @@ -0,0 +1,46 @@ +/** + * @file + * Preview for the Bartik theme. + */ +(function ($, Drupal, drupalSettings) { + Drupal.color = { + logoChanged: false, + callback(context, settings, $form) { + // Change the logo to be the real one. + if (!this.logoChanged) { + $('.color-preview .color-preview-logo img').attr('src', drupalSettings.color.logo); + this.logoChanged = true; + } + // Remove the logo if the setting is toggled off. + if (drupalSettings.color.logo === null) { + $('div').remove('.color-preview-logo'); + } + + const $colorPreview = $form.find('.color-preview'); + const $colorPalette = $form.find('.js-color-palette'); + + // Solid background. + $colorPreview.css('backgroundColor', $colorPalette.find('input[name="palette[bg]"]').val()); + + // Text preview. + $colorPreview.find('.color-preview-main h2, .color-preview .preview-content').css('color', $colorPalette.find('input[name="palette[text]"]').val()); + $colorPreview.find('.color-preview-content a').css('color', $colorPalette.find('input[name="palette[link]"]').val()); + + // Sidebar block. + const $colorPreviewBlock = $colorPreview.find('.color-preview-sidebar .color-preview-block'); + $colorPreviewBlock.css('background-color', $colorPalette.find('input[name="palette[sidebar]"]').val()); + $colorPreviewBlock.css('border-color', $colorPalette.find('input[name="palette[sidebarborders]"]').val()); + + // Footer wrapper background. + $colorPreview.find('.color-preview-footer-wrapper').css('background-color', $colorPalette.find('input[name="palette[footer]"]').val()); + + // CSS3 Gradients. + const gradientStart = $colorPalette.find('input[name="palette[top]"]').val(); + const gradientEnd = $colorPalette.find('input[name="palette[bottom]"]').val(); + + $colorPreview.find('.color-preview-header').attr('style', `background - color: ${gradientStart}; background - image: -webkit - gradient(linear, 0 % 0 % , 0 % 100 % , from(${gradientStart}), to(${gradientEnd})); background - image: -moz - linear - gradient(-90deg, ${gradientStart}, ${gradientEnd});`); + + $colorPreview.find('.color-preview-site-name').css('color', $colorPalette.find('input[name="palette[titleslogan]"]').val()); + }, + }; +}(jQuery, Drupal, drupalSettings)); diff --git a/color/preview.html b/color/preview.html new file mode 100644 index 0000000..9f4e23e --- /dev/null +++ b/color/preview.html @@ -0,0 +1,66 @@ +
+
+
+
+ +
Barrio
+ +
+ +
+
+
+

Etiam est risus

+
+ Maecenas id porttitor Ut enim ad minim veniam, quis nostrudfelis. Laboris nisi ut aliquip ex ea. +
+
+
+
+

Lorem ipsum dolor

+
+
+ Sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea + commodo consequat. Maecenas + id porttitor Ut enim ad minim veniam, quis nostr udfelis. +
+ Do it! +
+
+
+ + + +
\ No newline at end of file diff --git a/color/preview.js b/color/preview.js new file mode 100644 index 0000000..9b62e4f --- /dev/null +++ b/color/preview.js @@ -0,0 +1,52 @@ +/** + * DO NOT EDIT THIS FILE. + * See the following change record for more information, + * https://www.drupal.org/node/2815083 + * @preserve + **/ + +(function ($, Drupal, drupalSettings) { + Drupal.color = { + logoChanged: false, + callback: function callback(context, settings, $form) { + if (!this.logoChanged) { + $('.color-preview .color-preview-logo img').attr('src', drupalSettings.color.logo); + this.logoChanged = true; + } + + if (drupalSettings.color.logo === null) { + $('div').remove('.color-preview-logo'); + } + + var $colorPreview = $form.find('.color-preview'); + var $colorPalette = $form.find('.js-color-palette'); + + $colorPreview.css('backgroundColor', $colorPalette.find('input[name="palette[bg]"]').val()); + + $colorPreview.find('.color-preview-page-title, .color-preview-main h2, .color-preview .preview-content').css('color', $colorPalette.find('input[name="palette[text]"]').val()); + $colorPreview.find('.color-preview-content a').css('color', $colorPalette.find('input[name="palette[link]"]').val()); + $colorPreview.find('.preview-button').css('background-color', $colorPalette.find('input[name="palette[button]"]').val()); + $colorPreview.find('.preview-button').css('border-color', $colorPalette.find('input[name="palette[button]"]').val()); + $colorPreview.find('.preview-button').hover(function () { + $(this).css('background-color', $colorPalette.find('input[name="palette[buttonhover]"]').val()); + }, + function () { + $(this).css('background-color', $colorPalette.find('input[name="palette[button]"]').val()); + }); + + var $colorPreviewBlock = $colorPreview.find('.color-preview-sidebar .color-preview-block'); + $colorPreviewBlock.css('background-color', $colorPalette.find('input[name="palette[sidebar]"]').val()); + $colorPreviewBlock.css('border-color', $colorPalette.find('input[name="palette[sidebarborders]"]').val()); + + $colorPreview.find('.color-preview-footer-wrapper').css('background-color', $colorPalette.find('input[name="palette[footer]"]').val()); + + var gradientStart = $colorPalette.find('input[name="palette[top]"]').val(); + var gradientEnd = $colorPalette.find('input[name="palette[bottom]"]').val(); + + $colorPreview.find('.color-preview-header-top').css('background-color', $colorPalette.find('input[name="palette[top]"]').val()); + $colorPreview.find('.color-preview-header').css('background-color', $colorPalette.find('input[name="palette[bottom]"]').val()); + + $colorPreview.find('.color-preview-site-name').css('color', $colorPalette.find('input[name="palette[titleslogan]"]').val()); + } + }; +})(jQuery, Drupal, drupalSettings); diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..a709538 --- /dev/null +++ b/composer.json @@ -0,0 +1,9 @@ +{ + "name": "libops/isle", + "type": "drupal-theme", + "description": "Bootstrap theme for Islandora", + "require": { + "drupal/bootstrap_barrio": "^5.5" + } +} + diff --git a/config/install/isle.settings.yml b/config/install/isle.settings.yml new file mode 100644 index 0000000..dacd8e8 --- /dev/null +++ b/config/install/isle.settings.yml @@ -0,0 +1,58 @@ +# Library. +# ---------------------------- +bootstrap_barrio_library: 'production' +# Layout. +# ---------------------------- +bootstrap_barrio_sidebar_position: 'both' +bootstrap_barrio_content_offset: 0 +bootstrap_barrio_sidebar_first_width: 4 +bootstrap_barrio_sidebar_first_offset: 0 +bootstrap_barrio_sidebar_second_width: 3 +bootstrap_barrio_sidebar_second_offset: 0 + +# Container. +# ---------------------------- +bootstrap_barrio_container: 'container' +bootstrap_barrio_fluid_container: 0 + +# Buttons. +# ---------------------------- +bootstrap_barrio_button: 1 +bootstrap_barrio_button_size: '' +bootstrap_barrio_button_outline: 0 + +# Navbar. +# ---------------------------- +bootstrap_barrio_navbar_toggle: 'navbar-toggleable-lg' +bootstrap_barrio_navbar_container: '' +bootstrap_barrio_navbar_top_position: '' +bootstrap_barrio_navbar_top_color: '' +bootstrap_barrio_navbar_top_background: '' +bootstrap_barrio_navbar_position: '' +bootstrap_barrio_navbar_color: '' +bootstrap_barrio_navbar_background: '' + +# Messages. +# ---------------------------- +bootstrap_barrio_messages_widget: 'alerts' + +# Colors. +# ---------------------------- +bootstrap_barrio_system_messages: 'messages_white' + +# Tables. +# ---------------------------- +bootstrap_barrio_table_hover: 1 +bootstrap_barrio_table_style: 'table-striped' + +# Colors +# ---------------------------- +bootstrap_barrio_enable_color: false +bootstrap_barrio_color_scheme: 'default' +bootstrap_barrio_base_primary_color: '#2F3C7E' +bootstrap_barrio_base_secondary_color: '#FBEAEB' +bootstrap_barrio_body_color: 'gray-800' +bootstrap_barrio_body_bg_color: 'white' +bootstrap_barrio_h1_color: 'base' +bootstrap_barrio_h2_color: 'base' +bootstrap_barrio_h3_color: 'base' diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_account_menu.yml b/config/optional/block.block.bootstrap_barrio_subtheme_account_menu.yml new file mode 100644 index 0000000..917c2ed --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_account_menu.yml @@ -0,0 +1,24 @@ +langcode: en +status: true +dependencies: + config: + - system.menu.account + module: + - system + theme: + - isle +id: isle_account_menu +theme: isle +region: secondary_menu +weight: -7 +provider: null +plugin: 'system_menu_block:account' +settings: + id: 'system_menu_block:account' + label: 'User account menu' + label_display: '0' + provider: system + level: 1 + depth: 1 + expand_all_items: false +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_breadcrumbs.yml b/config/optional/block.block.bootstrap_barrio_subtheme_breadcrumbs.yml new file mode 100644 index 0000000..21a5b22 --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_breadcrumbs.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - system + theme: + - isle +id: isle_breadcrumbs +theme: isle +region: breadcrumb +weight: 0 +provider: null +plugin: system_breadcrumb_block +settings: + id: system_breadcrumb_block + label: Breadcrumbs + label_display: '0' + provider: system +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_content.yml b/config/optional/block.block.bootstrap_barrio_subtheme_content.yml new file mode 100644 index 0000000..8f3b4da --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_content.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - system + theme: + - isle +id: isle_content +theme: isle +region: content +weight: -3 +provider: null +plugin: system_main_block +settings: + id: system_main_block + label: 'Main page content' + label_display: '0' + provider: system +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_help.yml b/config/optional/block.block.bootstrap_barrio_subtheme_help.yml new file mode 100644 index 0000000..10a0c25 --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_help.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - help + theme: + - isle +id: isle_help +theme: isle +region: highlighted +weight: -2 +provider: null +plugin: help_block +settings: + id: help_block + label: Help + label_display: '0' + provider: help +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_main_menu.yml b/config/optional/block.block.bootstrap_barrio_subtheme_main_menu.yml new file mode 100644 index 0000000..f5f9db3 --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_main_menu.yml @@ -0,0 +1,24 @@ +langcode: en +status: true +dependencies: + config: + - system.menu.main + module: + - system + theme: + - isle +id: isle_main_menu +theme: isle +region: primary_menu +weight: -6 +provider: null +plugin: 'system_menu_block:main' +settings: + id: 'system_menu_block:main' + label: 'Main navigation' + label_display: '0' + provider: system + level: 1 + depth: 2 + expand_all_items: true +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_messages.yml b/config/optional/block.block.bootstrap_barrio_subtheme_messages.yml new file mode 100644 index 0000000..9cd94d7 --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_messages.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - system + theme: + - isle +id: isle_messages +theme: isle +region: highlighted +weight: -6 +provider: null +plugin: system_messages_block +settings: + id: system_messages_block + label: 'Status messages' + label_display: '0' + provider: system +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_page_title.yml b/config/optional/block.block.bootstrap_barrio_subtheme_page_title.yml new file mode 100644 index 0000000..f2e1add --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_page_title.yml @@ -0,0 +1,17 @@ +langcode: en +status: true +dependencies: + theme: + - isle +id: isle_page_title +theme: isle +region: content +weight: -7 +provider: null +plugin: page_title_block +settings: + id: page_title_block + label: 'Page title' + label_display: '0' + provider: core +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_powered.yml b/config/optional/block.block.bootstrap_barrio_subtheme_powered.yml new file mode 100644 index 0000000..4feadcf --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_powered.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - system + theme: + - isle +id: isle_powered +theme: isle +region: footer_fifth +weight: -7 +provider: null +plugin: system_powered_by_block +settings: + id: system_powered_by_block + label: 'Powered by Drupal' + label_display: '0' + provider: system +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_primary_admin_actions.yml b/config/optional/block.block.bootstrap_barrio_subtheme_primary_admin_actions.yml new file mode 100644 index 0000000..b26a6d7 --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_primary_admin_actions.yml @@ -0,0 +1,17 @@ +langcode: en +status: true +dependencies: + theme: + - isle +id: isle_primary_admin_actions +theme: isle +region: content +weight: -6 +provider: null +plugin: local_actions_block +settings: + id: local_actions_block + label: 'Primary admin actions' + label_display: '0' + provider: core +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_primary_local_tasks.yml b/config/optional/block.block.bootstrap_barrio_subtheme_primary_local_tasks.yml new file mode 100644 index 0000000..d2c3b7d --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_primary_local_tasks.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + theme: + - isle +id: isle_primary_local_tasks +theme: isle +region: content +weight: -5 +provider: null +plugin: local_tasks_block +settings: + id: local_tasks_block + label: 'Primary tabs' + label_display: '0' + provider: core + primary: true + secondary: false +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_search_form_narrow.yml b/config/optional/block.block.bootstrap_barrio_subtheme_search_form_narrow.yml new file mode 100644 index 0000000..199f65c --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_search_form_narrow.yml @@ -0,0 +1,20 @@ +langcode: en +status: true +dependencies: + module: + - search + theme: + - isle +id: isle_search_form_narrow +theme: isle +region: sidebar_first +weight: -7 +provider: null +plugin: search_form_block +settings: + id: search_form_block + label: 'Search form (narrow)' + label_display: '0' + provider: search + page_id: '' +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_search_form_wide.yml b/config/optional/block.block.bootstrap_barrio_subtheme_search_form_wide.yml new file mode 100644 index 0000000..2ea27e3 --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_search_form_wide.yml @@ -0,0 +1,20 @@ +langcode: en +status: true +dependencies: + module: + - search + theme: + - isle +id: isle_search_form_wide +theme: isle +region: top_header_form +weight: -7 +provider: null +plugin: search_form_block +settings: + id: search_form_block + label: 'Search form (wide)' + label_display: '0' + provider: search + page_id: '' +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_secondary_local_tasks.yml b/config/optional/block.block.bootstrap_barrio_subtheme_secondary_local_tasks.yml new file mode 100644 index 0000000..6d55072 --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_secondary_local_tasks.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + theme: + - isle +id: isle_secondary_local_tasks +theme: isle +region: content +weight: -4 +provider: null +plugin: local_tasks_block +settings: + id: local_tasks_block + label: 'Secondary tabs' + label_display: '0' + provider: core + primary: false + secondary: true +visibility: { } diff --git a/config/optional/block.block.bootstrap_barrio_subtheme_site_branding.yml b/config/optional/block.block.bootstrap_barrio_subtheme_site_branding.yml new file mode 100644 index 0000000..2782cee --- /dev/null +++ b/config/optional/block.block.bootstrap_barrio_subtheme_site_branding.yml @@ -0,0 +1,22 @@ +langcode: en +status: true +dependencies: + module: + - system + theme: + - isle +id: isle_site_branding +theme: isle +region: header +weight: -7 +provider: null +plugin: system_branding_block +settings: + id: system_branding_block + label: 'Site branding' + label_display: '0' + provider: system + use_site_logo: true + use_site_name: true + use_site_slogan: false +visibility: { } diff --git a/config/schema/isle.schema.yml b/config/schema/isle.schema.yml new file mode 100644 index 0000000..90a0111 --- /dev/null +++ b/config/schema/isle.schema.yml @@ -0,0 +1,5 @@ +# Schema for the configuration files of the Bootstrap Barrio Subtheme. + +isle.settings: + type: bootstrap_barrio.settings + label: 'Bootstrap Barrio settings' diff --git a/css/colors.css b/css/colors.css new file mode 100644 index 0000000..7cacb85 --- /dev/null +++ b/css/colors.css @@ -0,0 +1,114 @@ +/* ---------- Color Module Styles ----------- */ + +body { + color: #3b3b3b; + background: #292929; +} + +#page, +#main-wrapper, +.region-primary-menu .menu-item a.is-active, +.region-primary-menu .menu-item--active-trail a { + background: #fff; +} + +.tabs ul.primary li a.is-active { + background-color: #fff; +} + +.tabs ul.primary li.is-active a { + background-color: #fff; + border-bottom-color: #fff; +} + +#navbar-top { + background-color: #055a8e; +} + +#navbar-main { + background-color: #1d84c3; +} + +a, +.link { + color: #0071b3; +} + +a:hover, +a:focus, +.link:hover, +.link:focus { + color: #018fe2; +} +.nav-item .dropdown-item a.active { + color: white; +} +.nav-link { + color: rgb(231, 231, 231); +} +.nav-link:hover, +.nav-link:focus { + color: rgb(231, 231, 231); +} +a:active, +.link:active { + color: #23aeff; +} + +.page-item.active .page-link { + background-color: #0071b3; + border-color: #0071b3; +} + +.page-link, +.page-link:hover { + color: #0071b3; +} + +.sidebar .block { + background-color: #f6f6f2; + border-color: #f9f9f9; +} + +.btn-primary { + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover, +.btn-primary:focus { + background-color: #0256b1; +} + +.site-footer { + background: #292929; +} + +.region-header, +.region-header a, +.region-header li a.is-active, +.region-header .site-branding__text, +.region-header .site-branding, +.region-header .site-branding__text a, +.region-header .site-branding a, +.region-secondary-menu .menu-item a, +.region-secondary-menu .menu-item a.is-active { + color: #fffeff; +} + + +/* ---------- Color Form ----------- */ + +[dir="rtl"] .color-form .color-palette { + margin-left: 0; + margin-right: 20px; +} + +[dir="rtl"] .color-form .form-item label { + float: right; +} + +[dir="rtl"] .color-form .color-palette .lock { + right: -20px; + left: 0; +} diff --git a/css/search.css b/css/search.css new file mode 100644 index 0000000..7941c87 --- /dev/null +++ b/css/search.css @@ -0,0 +1,9 @@ +@media (min-width: 768px) { + #facets { + display: block !important; + } + } + +.sidebar h2 { + border: none; +} \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..47147d3 --- /dev/null +++ b/css/style.css @@ -0,0 +1,8 @@ +/** + * @file + * Subtheme specific CSS. + */ + +.block-islandora-mirador { + position:relative +} diff --git a/isle.info.yml b/isle.info.yml new file mode 100644 index 0000000..2edefb9 --- /dev/null +++ b/isle.info.yml @@ -0,0 +1,34 @@ +name: LibOps ISLE +type: theme +description: 'Basic structure for a Bootstrap Barrio SubTheme.' +core: 8.x +core_version_requirement: ^10 +base theme: bootstrap_barrio + +libraries: + - isle/bootstrap_cdn + - isle/global-styling + +regions: + top_header: 'Top header' + top_header_form: 'Top header form' + header: Header + header_form: 'Header form' + primary_menu: 'Primary menu' + secondary_menu: 'Secondary menu' + page_top: 'Page top' + page_bottom: 'Page bottom' + highlighted: Highlighted + featured_top: 'Featured top' + breadcrumb: Breadcrumb + content: Content + sidebar_first: 'Sidebar first' + sidebar_second: 'Sidebar second' + featured_bottom_first: 'Featured bottom first' + featured_bottom_second: 'Featured bottom second' + featured_bottom_third: 'Featured bottom third' + footer_first: 'Footer first' + footer_second: 'Footer second' + footer_third: 'Footer third' + footer_fourth: 'Footer fourth' + footer_fifth: 'Footer fifth' diff --git a/isle.libraries.yml b/isle.libraries.yml new file mode 100644 index 0000000..c44533f --- /dev/null +++ b/isle.libraries.yml @@ -0,0 +1,41 @@ +global-styling: + version: 0.1 + js: + js/global.js: {} + css: + component: + css/style.css: {} + css/colors.css: {} +bootstrap: + js: + /libraries/popper.js/dist/umd/popper.min.js: { weight: -19 } + /libraries/bootstrap/dist/js/bootstrap.min.js: { weight: -20 } + css: + component: + /libraries/bootstrap/dist/css/bootstrap.min.css: {} + dependencies: + - core/popperjs +bootstrap_cdn: + js: + //cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js: {} + css: + component: + //cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css: {} + dependencies: + - core/popperjs +color.preview: + version: 0.1 + css: + theme: + color/preview.css: {} + js: + color/preview.js: {} + dependencies: + - color/drupal.color +search: + version: 0.1 + js: + js/search.js: {} + css: + component: + css/search.css: {} diff --git a/isle.theme b/isle.theme new file mode 100644 index 0000000..1b2d824 --- /dev/null +++ b/isle.theme @@ -0,0 +1,64 @@ + t('Primary'), + 'bg-secondary' => t('Secondary'), + 'bg-light' => t('Light'), + 'bg-dark' => t('Dark'), + 'bg-white' => t('White'), + 'bg-transparent' => t('Transparent'), + ]; + $form['components']['navbar']['bootstrap_barrio_navbar_background']['#options'] = [ + 'bg-primary' => t('Primary'), + 'bg-secondary' => t('Secondary'), + 'bg-light' => t('Light'), + 'bg-dark' => t('Dark'), + 'bg-white' => t('White'), + 'bg-transparent' => t('Transparent'), + ]; +} + +function isle_preprocess_page__search(&$variables) { + $variables['#attached']['library'][] = 'isle/search'; + + $variables['page']['sidebar_first']['wrapper'] = [ + '#type' => 'container', + '#attributes' => [ + 'class' => [ + 'accordion', + 'navbar-collapse', + 'collapse', + ], + 'id' => 'facets', + ], + '#prefix' => Markup::create(''), + ]; + foreach ($variables['page']['sidebar_first'] as $key => $facet) { + if ($key[0] !== '#' && $key !== 'wrapper') { + $variables['page']['sidebar_first']['wrapper'][$key] = $facet; + unset($variables['page']['sidebar_first'][$key]); + } + } +} diff --git a/js/global.js b/js/global.js new file mode 100644 index 0000000..e9dc7cb --- /dev/null +++ b/js/global.js @@ -0,0 +1,16 @@ +/** + * @file + * Global utilities. + * + */ +(function (Drupal) { + + 'use strict'; + + Drupal.behaviors.isle = { + attach: function (context, settings) { + + } + }; + +})(Drupal); diff --git a/js/search.js b/js/search.js new file mode 100644 index 0000000..48535e4 --- /dev/null +++ b/js/search.js @@ -0,0 +1,17 @@ +/** + * @file + * Global utilities. + * + */ +(function (Drupal) { + + 'use strict'; + + Drupal.behaviors.isleSearch = { + attach: function (context, settings) { + + } + }; + + })(Drupal); + \ No newline at end of file diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..7d7cf7c --- /dev/null +++ b/logo.svg @@ -0,0 +1 @@ + diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d34f9b22f42dba8598380220b9cfef1de7c8e432 GIT binary patch literal 45268 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

9RAF?{x8pTfNx$1yTmY^M)QS1~zJMSiG^ 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 literal 0 HcmV?d00001 diff --git a/templates/_page.html.twig b/templates/_page.html.twig new file mode 100644 index 0000000..cf4d7db --- /dev/null +++ b/templates/_page.html.twig @@ -0,0 +1,162 @@ +{% extends "@bootstrap_barrio/layout/page.html.twig" %} + +{# +/** + * @file + * Bootstrap Barrio's theme implementation to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template normally located in the + * core/modules/system directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * - logo: The url of the logo image, as defined in theme settings. + * - site_name: The name of the site. This is empty when displaying the site + * name has been disabled in the theme settings. + * - site_slogan: The slogan of the site. This is empty when displaying the site + * slogan has been disabled in theme settings. + + * Page content (in order of occurrence in the default page.html.twig): + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.top_header: Items for the top header region. + * - page.top_header_form: Items for the top header form region. + * - page.header: Items for the header region. + * - page.header_form: Items for the header form region. + * - page.highlighted: Items for the highlighted region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.featured_top: Items for the featured top region. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.featured_bottom_first: Items for the first featured bottom region. + * - page.featured_bottom_second: Items for the second featured bottom region. + * - page.featured_bottom_third: Items for the third featured bottom region. + * - page.footer_first: Items for the first footer column. + * - page.footer_second: Items for the second footer column. + * - page.footer_third: Items for the third footer column. + * - page.footer_fourth: Items for the fourth footer column. + * - page.footer_fifth: Items for the fifth footer column. + * - page.breadcrumb: Items for the breadcrumb region. + * + * Theme variables: + * - navbar_top_attributes: Items for the header region. + * - navbar_attributes: Items for the header region. + * - content_attributes: Items for the header region. + * - sidebar_first_attributes: Items for the highlighted region. + * - sidebar_second_attributes: Items for the primary menu region. + * + * @see template_preprocess_page() + * @see bootstrap_barrio_preprocess_page() + * @see html.html.twig + */ +#} +{# see https://www.drupal.org/project/drupal/issues/953034#comment-14192130 #} +{% set sidebar_first_exists = page.sidebar_first|render|striptags('

+ {% endif %} + + {% endif %} + + {% if container_navbar %} +
+ {% endif %} + {{ page.header }} + {% if page.primary_menu or page.header_form %} + + + {% endif %} + {% if sidebar_collapse %} + + {% endif %} + {% if container_navbar %} +
+ {% endif %} + +{% endblock %} + +{% block content %} +
+ {{ page.breadcrumb }} +
+ +
+ + {{ page.content }} +
+ + {% if sidebar_first_exists %} + + +
+ {% endif %} + {% if sidebar_second_exists %} + + +
+ {% endif %} + + +{% endblock %} + +{% block footer %} +
+ {% if page.footer_first or page.footer_second or page.footer_third or page.footer_fourth %} + + {% endif %} + {% if page.footer_fifth %} + + {% endif %} +
+{% endblock %} diff --git a/templates/block--facets.html.twig b/templates/block--facets.html.twig new file mode 100644 index 0000000..054d344 --- /dev/null +++ b/templates/block--facets.html.twig @@ -0,0 +1,61 @@ +{# +/** + * @file + * Default theme implementation to display a block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: array of HTML attributes populated by modules, intended to + * be added to the main container tag of this template. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main content + * tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_block() + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'accordion-collapse', + 'collapse' + ] +%} +{% + set expanded = plugin_id == 'facet_block:resource_type' +%} +{% if expanded %} + {% + set classes = classes | merge(['show']) + %} +{% else %} + {% + set classes = classes | merge(['facet-inactive']) + %} +{% endif %} +
+

+ +

+
+
+ {{ content }} +
+
+