rdrew
8 months ago
commit
58a5a488fa
131 changed files with 28831 additions and 0 deletions
@ -0,0 +1,6 @@
|
||||
*.swp |
||||
*.swo |
||||
node_modules |
||||
do-not-upload |
||||
.tmp.drivedownload |
||||
.tmp.driveupload |
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE |
||||
Version 2, June 1991 |
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., |
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||
Everyone is permitted to copy and distribute verbatim copies |
||||
of this license document, but changing it is not allowed. |
||||
|
||||
Preamble |
||||
|
||||
The licenses for most software are designed to take away your |
||||
freedom to share and change it. By contrast, the GNU General Public |
||||
License is intended to guarantee your freedom to share and change free |
||||
software--to make sure the software is free for all its users. This |
||||
General Public License applies to most of the Free Software |
||||
Foundation's software and to any other program whose authors commit to |
||||
using it. (Some other Free Software Foundation software is covered by |
||||
the GNU Lesser General Public License instead.) You can apply it to |
||||
your programs, too. |
||||
|
||||
When we speak of free software, we are referring to freedom, not |
||||
price. Our General Public Licenses are designed to make sure that you |
||||
have the freedom to distribute copies of free software (and charge for |
||||
this service if you wish), that you receive source code or can get it |
||||
if you want it, that you can change the software or use pieces of it |
||||
in new free programs; and that you know you can do these things. |
||||
|
||||
To protect your rights, we need to make restrictions that forbid |
||||
anyone to deny you these rights or to ask you to surrender the rights. |
||||
These restrictions translate to certain responsibilities for you if you |
||||
distribute copies of the software, or if you modify it. |
||||
|
||||
For example, if you distribute copies of such a program, whether |
||||
gratis or for a fee, you must give the recipients all the rights that |
||||
you have. You must make sure that they, too, receive or can get the |
||||
source code. And you must show them these terms so they know their |
||||
rights. |
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and |
||||
(2) offer you this license which gives you legal permission to copy, |
||||
distribute and/or modify the software. |
||||
|
||||
Also, for each author's protection and ours, we want to make certain |
||||
that everyone understands that there is no warranty for this free |
||||
software. If the software is modified by someone else and passed on, we |
||||
want its recipients to know that what they have is not the original, so |
||||
that any problems introduced by others will not reflect on the original |
||||
authors' reputations. |
||||
|
||||
Finally, any free program is threatened constantly by software |
||||
patents. We wish to avoid the danger that redistributors of a free |
||||
program will individually obtain patent licenses, in effect making the |
||||
program proprietary. To prevent this, we have made it clear that any |
||||
patent must be licensed for everyone's free use or not licensed at all. |
||||
|
||||
The precise terms and conditions for copying, distribution and |
||||
modification follow. |
||||
|
||||
GNU GENERAL PUBLIC LICENSE |
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
||||
|
||||
0. This License applies to any program or other work which contains |
||||
a notice placed by the copyright holder saying it may be distributed |
||||
under the terms of this General Public License. The "Program", below, |
||||
refers to any such program or work, and a "work based on the Program" |
||||
means either the Program or any derivative work under copyright law: |
||||
that is to say, a work containing the Program or a portion of it, |
||||
either verbatim or with modifications and/or translated into another |
||||
language. (Hereinafter, translation is included without limitation in |
||||
the term "modification".) Each licensee is addressed as "you". |
||||
|
||||
Activities other than copying, distribution and modification are not |
||||
covered by this License; they are outside its scope. The act of |
||||
running the Program is not restricted, and the output from the Program |
||||
is covered only if its contents constitute a work based on the |
||||
Program (independent of having been made by running the Program). |
||||
Whether that is true depends on what the Program does. |
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's |
||||
source code as you receive it, in any medium, provided that you |
||||
conspicuously and appropriately publish on each copy an appropriate |
||||
copyright notice and disclaimer of warranty; keep intact all the |
||||
notices that refer to this License and to the absence of any warranty; |
||||
and give any other recipients of the Program a copy of this License |
||||
along with the Program. |
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and |
||||
you may at your option offer warranty protection in exchange for a fee. |
||||
|
||||
2. You may modify your copy or copies of the Program or any portion |
||||
of it, thus forming a work based on the Program, and copy and |
||||
distribute such modifications or work under the terms of Section 1 |
||||
above, provided that you also meet all of these conditions: |
||||
|
||||
a) You must cause the modified files to carry prominent notices |
||||
stating that you changed the files and the date of any change. |
||||
|
||||
b) You must cause any work that you distribute or publish, that in |
||||
whole or in part contains or is derived from the Program or any |
||||
part thereof, to be licensed as a whole at no charge to all third |
||||
parties under the terms of this License. |
||||
|
||||
c) If the modified program normally reads commands interactively |
||||
when run, you must cause it, when started running for such |
||||
interactive use in the most ordinary way, to print or display an |
||||
announcement including an appropriate copyright notice and a |
||||
notice that there is no warranty (or else, saying that you provide |
||||
a warranty) and that users may redistribute the program under |
||||
these conditions, and telling the user how to view a copy of this |
||||
License. (Exception: if the Program itself is interactive but |
||||
does not normally print such an announcement, your work based on |
||||
the Program is not required to print an announcement.) |
||||
|
||||
These requirements apply to the modified work as a whole. If |
||||
identifiable sections of that work are not derived from the Program, |
||||
and can be reasonably considered independent and separate works in |
||||
themselves, then this License, and its terms, do not apply to those |
||||
sections when you distribute them as separate works. But when you |
||||
distribute the same sections as part of a whole which is a work based |
||||
on the Program, the distribution of the whole must be on the terms of |
||||
this License, whose permissions for other licensees extend to the |
||||
entire whole, and thus to each and every part regardless of who wrote it. |
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest |
||||
your rights to work written entirely by you; rather, the intent is to |
||||
exercise the right to control the distribution of derivative or |
||||
collective works based on the Program. |
||||
|
||||
In addition, mere aggregation of another work not based on the Program |
||||
with the Program (or with a work based on the Program) on a volume of |
||||
a storage or distribution medium does not bring the other work under |
||||
the scope of this License. |
||||
|
||||
3. You may copy and distribute the Program (or a work based on it, |
||||
under Section 2) in object code or executable form under the terms of |
||||
Sections 1 and 2 above provided that you also do one of the following: |
||||
|
||||
a) Accompany it with the complete corresponding machine-readable |
||||
source code, which must be distributed under the terms of Sections |
||||
1 and 2 above on a medium customarily used for software interchange; or, |
||||
|
||||
b) Accompany it with a written offer, valid for at least three |
||||
years, to give any third party, for a charge no more than your |
||||
cost of physically performing source distribution, a complete |
||||
machine-readable copy of the corresponding source code, to be |
||||
distributed under the terms of Sections 1 and 2 above on a medium |
||||
customarily used for software interchange; or, |
||||
|
||||
c) Accompany it with the information you received as to the offer |
||||
to distribute corresponding source code. (This alternative is |
||||
allowed only for noncommercial distribution and only if you |
||||
received the program in object code or executable form with such |
||||
an offer, in accord with Subsection b above.) |
||||
|
||||
The source code for a work means the preferred form of the work for |
||||
making modifications to it. For an executable work, complete source |
||||
code means all the source code for all modules it contains, plus any |
||||
associated interface definition files, plus the scripts used to |
||||
control compilation and installation of the executable. However, as a |
||||
special exception, the source code distributed need not include |
||||
anything that is normally distributed (in either source or binary |
||||
form) with the major components (compiler, kernel, and so on) of the |
||||
operating system on which the executable runs, unless that component |
||||
itself accompanies the executable. |
||||
|
||||
If distribution of executable or object code is made by offering |
||||
access to copy from a designated place, then offering equivalent |
||||
access to copy the source code from the same place counts as |
||||
distribution of the source code, even though third parties are not |
||||
compelled to copy the source along with the object code. |
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program |
||||
except as expressly provided under this License. Any attempt |
||||
otherwise to copy, modify, sublicense or distribute the Program is |
||||
void, and will automatically terminate your rights under this License. |
||||
However, parties who have received copies, or rights, from you under |
||||
this License will not have their licenses terminated so long as such |
||||
parties remain in full compliance. |
||||
|
||||
5. You are not required to accept this License, since you have not |
||||
signed it. However, nothing else grants you permission to modify or |
||||
distribute the Program or its derivative works. These actions are |
||||
prohibited by law if you do not accept this License. Therefore, by |
||||
modifying or distributing the Program (or any work based on the |
||||
Program), you indicate your acceptance of this License to do so, and |
||||
all its terms and conditions for copying, distributing or modifying |
||||
the Program or works based on it. |
||||
|
||||
6. Each time you redistribute the Program (or any work based on the |
||||
Program), the recipient automatically receives a license from the |
||||
original licensor to copy, distribute or modify the Program subject to |
||||
these terms and conditions. You may not impose any further |
||||
restrictions on the recipients' exercise of the rights granted herein. |
||||
You are not responsible for enforcing compliance by third parties to |
||||
this License. |
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent |
||||
infringement or for any other reason (not limited to patent issues), |
||||
conditions are imposed on you (whether by court order, agreement or |
||||
otherwise) that contradict the conditions of this License, they do not |
||||
excuse you from the conditions of this License. If you cannot |
||||
distribute so as to satisfy simultaneously your obligations under this |
||||
License and any other pertinent obligations, then as a consequence you |
||||
may not distribute the Program at all. For example, if a patent |
||||
license would not permit royalty-free redistribution of the Program by |
||||
all those who receive copies directly or indirectly through you, then |
||||
the only way you could satisfy both it and this License would be to |
||||
refrain entirely from distribution of the Program. |
||||
|
||||
If any portion of this section is held invalid or unenforceable under |
||||
any particular circumstance, the balance of the section is intended to |
||||
apply and the section as a whole is intended to apply in other |
||||
circumstances. |
||||
|
||||
It is not the purpose of this section to induce you to infringe any |
||||
patents or other property right claims or to contest validity of any |
||||
such claims; this section has the sole purpose of protecting the |
||||
integrity of the free software distribution system, which is |
||||
implemented by public license practices. Many people have made |
||||
generous contributions to the wide range of software distributed |
||||
through that system in reliance on consistent application of that |
||||
system; it is up to the author/donor to decide if he or she is willing |
||||
to distribute software through any other system and a licensee cannot |
||||
impose that choice. |
||||
|
||||
This section is intended to make thoroughly clear what is believed to |
||||
be a consequence of the rest of this License. |
||||
|
||||
8. If the distribution and/or use of the Program is restricted in |
||||
certain countries either by patents or by copyrighted interfaces, the |
||||
original copyright holder who places the Program under this License |
||||
may add an explicit geographical distribution limitation excluding |
||||
those countries, so that distribution is permitted only in or among |
||||
countries not thus excluded. In such case, this License incorporates |
||||
the limitation as if written in the body of this License. |
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions |
||||
of the General Public License from time to time. Such new versions will |
||||
be similar in spirit to the present version, but may differ in detail to |
||||
address new problems or concerns. |
||||
|
||||
Each version is given a distinguishing version number. If the Program |
||||
specifies a version number of this License which applies to it and "any |
||||
later version", you have the option of following the terms and conditions |
||||
either of that version or of any later version published by the Free |
||||
Software Foundation. If the Program does not specify a version number of |
||||
this License, you may choose any version ever published by the Free Software |
||||
Foundation. |
||||
|
||||
10. If you wish to incorporate parts of the Program into other free |
||||
programs whose distribution conditions are different, write to the author |
||||
to ask for permission. For software which is copyrighted by the Free |
||||
Software Foundation, write to the Free Software Foundation; we sometimes |
||||
make exceptions for this. Our decision will be guided by the two goals |
||||
of preserving the free status of all derivatives of our free software and |
||||
of promoting the sharing and reuse of software generally. |
||||
|
||||
NO WARRANTY |
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
||||
REPAIR OR CORRECTION. |
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
||||
POSSIBILITY OF SUCH DAMAGES. |
||||
|
||||
END OF TERMS AND CONDITIONS |
||||
|
||||
How to Apply These Terms to Your New Programs |
||||
|
||||
If you develop a new program, and you want it to be of the greatest |
||||
possible use to the public, the best way to achieve this is to make it |
||||
free software which everyone can redistribute and change under these terms. |
||||
|
||||
To do so, attach the following notices to the program. It is safest |
||||
to attach them to the start of each source file to most effectively |
||||
convey the exclusion of warranty; and each file should have at least |
||||
the "copyright" line and a pointer to where the full notice is found. |
||||
|
||||
<one line to give the program's name and a brief idea of what it does.> |
||||
Copyright (C) <year> <name of author> |
||||
|
||||
This program is free software; you can redistribute it and/or modify |
||||
it under the terms of the GNU General Public License as published by |
||||
the Free Software Foundation; either version 2 of the License, or |
||||
(at your option) any later version. |
||||
|
||||
This program is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU General Public License for more details. |
||||
|
||||
You should have received a copy of the GNU General Public License along |
||||
with this program; if not, write to the Free Software Foundation, Inc., |
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
||||
Also add information on how to contact you by electronic and paper mail. |
||||
|
||||
If the program is interactive, make it output a short notice like this |
||||
when it starts in an interactive mode: |
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author |
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
||||
This is free software, and you are welcome to redistribute it |
||||
under certain conditions; type `show c' for details. |
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate |
||||
parts of the General Public License. Of course, the commands you use may |
||||
be called something other than `show w' and `show c'; they could even be |
||||
mouse-clicks or menu items--whatever suits your program. |
||||
|
||||
You should also get your employer (if you work as a programmer) or your |
||||
school, if any, to sign a "copyright disclaimer" for the program, if |
||||
necessary. Here is a sample; alter the names: |
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
||||
|
||||
<signature of Ty Coon>, 1 April 1989 |
||||
Ty Coon, President of Vice |
||||
|
||||
This General Public License does not permit incorporating your program into |
||||
proprietary programs. If your program is a subroutine library, you may |
||||
consider it more useful to permit linking proprietary applications with the |
||||
library. If this is what you want to do, use the GNU Lesser General |
||||
Public License instead of this License. |
@ -0,0 +1,14 @@
|
||||
var browserSync = require('browser-sync'); |
||||
|
||||
browserSync({ |
||||
proxy: 'https://islandlives2023.lndo.site', |
||||
files: 'css/**/*.css', |
||||
plugins: ['bs-rewrite-rules'], |
||||
serveStatic: ['.'], |
||||
rewriteRules: [ |
||||
{ |
||||
match: /\/themes\/custom\/robertsonlibrary_v1/g, |
||||
replace: '' |
||||
} |
||||
] |
||||
}); |
@ -0,0 +1,77 @@
|
||||
version 9.1.0 |
||||
15 Dec 2021 |
||||
+-----------------------------+ |
||||
# Initial release of series 9.x.x |
||||
|
||||
|
||||
version 9.1.1 |
||||
15 Dec 2021 |
||||
+-----------------------------+ |
||||
# Minor improvements |
||||
|
||||
|
||||
version 9.1.2 |
||||
23 Dec 2021 |
||||
+-----------------------------+ |
||||
# Fixed minor known bugs. |
||||
|
||||
|
||||
version 9.1.3 |
||||
08 Feb 2022 |
||||
+-----------------------------+ |
||||
- Added two new css variables --color-text, --color-heading |
||||
- Added new shortcode for light background "bg-light" |
||||
- Changed scroll to top arrow icon path. |
||||
|
||||
|
||||
version 9.2.0 |
||||
29 August 2022 |
||||
+-----------------------------+ |
||||
- Theme now supports Drupal 10 |
||||
- Added shortcode for text color - dark, light |
||||
- Added shortcode section-small |
||||
- Other minor changes and improvements. |
||||
|
||||
|
||||
version 10.0.0 |
||||
30 August 2023 |
||||
+-----------------------------+ |
||||
- Initial release of 10.x.x series |
||||
- Minor improvements. |
||||
|
||||
|
||||
version 10.0.1 |
||||
30 August 2023 |
||||
+-----------------------------+ |
||||
- Add custom font icon library. https://drupar.com/node/2875/ |
||||
- Updated Bootstrap Font Icons to version 1.10.5 |
||||
- Updated FontAwesome 5 Font Icons to version 5.15.4 |
||||
- Added styling for EU Cookie Compliance module. |
||||
- Minor improvements. |
||||
|
||||
|
||||
version 10.0.2 |
||||
31 August 2023 |
||||
+-----------------------------+ |
||||
- Removed menu--main.html.twig template file. |
||||
- Theme now uses menu.html.twig |
||||
- New animated mobile menu icon. |
||||
- Minor improvements. |
||||
|
||||
|
||||
version 10.0.3 |
||||
01 September 2023 |
||||
+-----------------------------+ |
||||
- New template file: header-primary-menu.html.twig |
||||
- Minor improvements of main menu. |
||||
|
||||
|
||||
version 10.0.4 |
||||
05 September 2023 |
||||
+-----------------------------+ |
||||
- Removed padding from sidebar. |
||||
- Removed margin-bottom from sidebar block. |
||||
- Removed margin bottom from main. |
||||
- Fixed display of contextual-links in header-top region. |
||||
- Added a default background color for footer. |
||||
- Added a default background color for sidebar blocks. |
@ -0,0 +1,24 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
config: |
||||
- system.menu.account |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_account_menu |
||||
theme: vre2024 |
||||
region: hidden |
||||
weight: -7 |
||||
provider: null |
||||
plugin: 'system_menu_block:account' |
||||
settings: |
||||
id: 'system_menu_block:account' |
||||
label: 'User account menu' |
||||
provider: system |
||||
label_display: '0' |
||||
level: 1 |
||||
depth: 1 |
||||
expand_all_items: false |
||||
visibility: { } |
@ -0,0 +1,22 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_branding |
||||
theme: vre2024 |
||||
region: header |
||||
weight: 0 |
||||
provider: null |
||||
plugin: system_branding_block |
||||
settings: |
||||
id: system_branding_block |
||||
label: 'Site branding' |
||||
provider: system |
||||
label_display: '0' |
||||
use_site_logo: true |
||||
use_site_name: true |
||||
use_site_slogan: true |
||||
visibility: { } |
@ -0,0 +1,19 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_breadcrumbs |
||||
theme: vre2024 |
||||
region: page_header |
||||
weight: -7 |
||||
provider: null |
||||
plugin: system_breadcrumb_block |
||||
settings: |
||||
id: system_breadcrumb_block |
||||
label: Breadcrumbs |
||||
provider: system |
||||
label_display: '0' |
||||
visibility: { } |
@ -0,0 +1,19 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_content |
||||
theme: vre2024 |
||||
region: content |
||||
weight: 0 |
||||
provider: null |
||||
plugin: system_main_block |
||||
settings: |
||||
id: system_main_block |
||||
label: 'Main page content' |
||||
provider: system |
||||
label_display: '0' |
||||
visibility: { } |
@ -0,0 +1,24 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
config: |
||||
- system.menu.footer |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_footer |
||||
theme: vre2024 |
||||
region: footer_four |
||||
weight: -11 |
||||
provider: null |
||||
plugin: 'system_menu_block:footer' |
||||
settings: |
||||
id: 'system_menu_block:footer' |
||||
label: 'Footer menu' |
||||
provider: system |
||||
label_display: '0' |
||||
level: 1 |
||||
depth: 0 |
||||
expand_all_items: false |
||||
visibility: { } |
@ -0,0 +1,19 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- help |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_help |
||||
theme: vre2024 |
||||
region: content |
||||
weight: -30 |
||||
provider: null |
||||
plugin: help_block |
||||
settings: |
||||
id: help_block |
||||
label: Help |
||||
provider: help |
||||
label_display: '0' |
||||
visibility: { } |
@ -0,0 +1,17 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_local_actions |
||||
theme: vre2024 |
||||
region: content |
||||
weight: -20 |
||||
provider: null |
||||
plugin: local_actions_block |
||||
settings: |
||||
id: local_actions_block |
||||
label: 'Primary admin actions' |
||||
provider: core |
||||
label_display: '0' |
||||
visibility: { } |
@ -0,0 +1,19 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_local_tasks |
||||
theme: vre2024 |
||||
region: content |
||||
weight: -40 |
||||
provider: null |
||||
plugin: local_tasks_block |
||||
settings: |
||||
id: local_tasks_block |
||||
label: Tabs |
||||
provider: core |
||||
label_display: '0' |
||||
primary: true |
||||
secondary: true |
||||
visibility: { } |
@ -0,0 +1,24 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
config: |
||||
- system.menu.main |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_main_menu |
||||
theme: vre2024 |
||||
region: hidden |
||||
weight: -8 |
||||
provider: null |
||||
plugin: 'system_menu_block:main' |
||||
settings: |
||||
id: 'system_menu_block:main' |
||||
label: 'Main navigation' |
||||
provider: system |
||||
label_display: '0' |
||||
level: 1 |
||||
depth: 1 |
||||
expand_all_items: false |
||||
visibility: { } |
@ -0,0 +1,19 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_messages |
||||
theme: vre2024 |
||||
region: highlighted |
||||
weight: 0 |
||||
provider: null |
||||
plugin: system_messages_block |
||||
settings: |
||||
id: system_messages_block |
||||
label: 'Status messages' |
||||
provider: system |
||||
label_display: '0' |
||||
visibility: { } |
@ -0,0 +1,17 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_page_title |
||||
theme: vre2024 |
||||
region: page_header |
||||
weight: -6 |
||||
provider: null |
||||
plugin: page_title_block |
||||
settings: |
||||
id: page_title_block |
||||
label: 'Page title' |
||||
provider: core |
||||
label_display: '0' |
||||
visibility: { } |
@ -0,0 +1,19 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_powered |
||||
theme: vre2024 |
||||
region: footer_bottom_left |
||||
weight: -7 |
||||
provider: null |
||||
plugin: system_powered_by_block |
||||
settings: |
||||
id: system_powered_by_block |
||||
label: 'Powered by Drupal' |
||||
provider: system |
||||
label_display: '0' |
||||
visibility: { } |
@ -0,0 +1,20 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- search |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_search |
||||
theme: vre2024 |
||||
region: search_box |
||||
weight: -8 |
||||
provider: null |
||||
plugin: search_form_block |
||||
settings: |
||||
id: search_form_block |
||||
label: Search |
||||
provider: search |
||||
label_display: visible |
||||
page_id: node_search |
||||
visibility: { } |
@ -0,0 +1,24 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
config: |
||||
- system.menu.tools |
||||
module: |
||||
- system |
||||
theme: |
||||
- vre2024 |
||||
id: vre2024_tools |
||||
theme: vre2024 |
||||
region: hidden |
||||
weight: -6 |
||||
provider: null |
||||
plugin: 'system_menu_block:tools' |
||||
settings: |
||||
id: 'system_menu_block:tools' |
||||
label: Tools |
||||
provider: system |
||||
label_display: visible |
||||
level: 1 |
||||
depth: 0 |
||||
expand_all_items: false |
||||
visibility: { } |
@ -0,0 +1,5 @@
|
||||
# Schema for the configuration files of vre2024 theme. |
||||
|
||||
vre2024.settings: |
||||
type: theme_settings |
||||
label: 'vre2024 Settings' |
@ -0,0 +1,10 @@
|
||||
FontAwesome font icons |
||||
+---------------------------+ |
||||
https://fontawesome.com |
||||
|
||||
|
||||
|
||||
|
||||
Bootstrap Icons |
||||
+---------------------------+ |
||||
https://icons.getbootstrap.com/ |
@ -0,0 +1,546 @@
|
||||
/* Font info |
||||
---------------------------------------- */ |
||||
|
||||
/* Variables |
||||
---------------------------------------- */ |
||||
:root { |
||||
--upei-red: #8c2004; |
||||
--upei-green: #5C8727; |
||||
--upei-yellow: #fbb040; |
||||
|
||||
--primary: #365AB5; |
||||
--secondary: #D05700; |
||||
--dark: #232742; |
||||
--light: #D5DCEE; |
||||
--border: #99A4C1; |
||||
|
||||
--color-text: #444444; |
||||
--color-heading: #111111; |
||||
} |
||||
/* Default box sizing. |
||||
---------------------------------------- */ |
||||
*, |
||||
*::before, |
||||
*::after { |
||||
box-sizing: border-box; |
||||
} |
||||
|
||||
/* Remove default margin */ |
||||
body, |
||||
h1, |
||||
h2, |
||||
h3, |
||||
h4, |
||||
h5, |
||||
h6, |
||||
figure, |
||||
blockquote, |
||||
dl, |
||||
dd { |
||||
margin: 0; |
||||
} |
||||
|
||||
/* HTML and Body |
||||
---------------------------------------- */ |
||||
html:focus-within { |
||||
scroll-behavior: smooth; |
||||
} |
||||
html { |
||||
font-size: 16px; |
||||
scroll-behavior: smooth; |
||||
} |
||||
html, |
||||
body { |
||||
height: 100%; |
||||
} |
||||
body { |
||||
color: var(--color-text); |
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; |
||||
font-size: 1rem; |
||||
font-weight: 400; |
||||
min-height: 100vh; |
||||
margin: 0; |
||||
padding: 0; |
||||
line-height: 1.6; |
||||
text-rendering: optimizeSpeed; |
||||
overflow-x: hidden; |
||||
-webkit-font-smoothing: subpixel-antialiased; |
||||
-webkit-text-size-adjust: 100%; |
||||
-ms-text-size-adjust: 100%; |
||||
} |
||||
/* Regions |
||||
---------------------------------------- */ |
||||
article, |
||||
aside, |
||||
details, |
||||
figcaption, |
||||
figure, |
||||
footer, |
||||
header, |
||||
hgroup, |
||||
main, |
||||
menu, |
||||
nav, |
||||
section { |
||||
display: block; |
||||
} |
||||
summary { |
||||
display: list-item; |
||||
cursor: pointer; |
||||
} |
||||
details { |
||||
padding: 1rem; |
||||
margin-bottom: 1rem; |
||||
border: 1px solid var(--border); |
||||
} |
||||
template, |
||||
[hidden] { |
||||
display: none; |
||||
} |
||||
|
||||
/* Typography |
||||
---------------------------------------- */ |
||||
h1, |
||||
h2, |
||||
h3, |
||||
h4, |
||||
h5, |
||||
h6 { |
||||
color: var(--color-heading); |
||||
font-weight: 700; |
||||
font-style: normal; |
||||
line-height: 1.6; |
||||
} |
||||
h1 { |
||||
font-size: 2.2rem; |
||||
} |
||||
h2 { |
||||
font-size: 1.9rem; |
||||
} |
||||
h3 { |
||||
font-size: 1.6rem; |
||||
} |
||||
h4 { |
||||
font-size: 1.3rem; |
||||
} |
||||
h5 { |
||||
font-size: 1.1rem; |
||||
} |
||||
h6 { |
||||
font-size: 1.1rem; |
||||
} |
||||
p { |
||||
margin: 0 0 1.2rem 0; |
||||
} |
||||
b, |
||||
strong { |
||||
font-weight: bolder; |
||||
} |
||||
dfn, |
||||
cite { |
||||
font-style: italic; |
||||
} |
||||
del { |
||||
text-decoration: line-through; |
||||
} |
||||
small { |
||||
font-size: 80%; |
||||
} |
||||
big { |
||||
font-size: 125%; |
||||
} |
||||
em { |
||||
font-style: normal; |
||||
} |
||||
a { |
||||
background-color: transparent; |
||||
text-decoration: none; |
||||
color: var(--primary); |
||||
} |
||||
a:active, |
||||
a:focus { |
||||
text-decoration: none; |
||||
border: 0; |
||||
outline: 0; |
||||
} |
||||
a:hover { |
||||
color: var(--secondary); |
||||
} |
||||
a:not([class]) { |
||||
text-decoration-skip-ink: auto; |
||||
} |
||||
/* Typography-> code tags */ |
||||
code, |
||||
kbd, |
||||
pre, |
||||
samp { |
||||
font-family: monospace, monospace; |
||||
font-size: 1rem; |
||||
} |
||||
kbd, |
||||
samp { |
||||
display: inline-block; |
||||
margin: 0; |
||||
padding: 0 5px; |
||||
} |
||||
pre { |
||||
overflow: auto; |
||||
margin: 1rem 0; |
||||
padding: 1rem; |
||||
tab-size: 2; |
||||
} |
||||
sub, |
||||
sup { |
||||
position: relative; |
||||
font-size: 75%; |
||||
line-height: 0; |
||||
vertical-align: baseline; |
||||
} |
||||
sub { |
||||
bottom: -0.25em; |
||||
} |
||||
sup { |
||||
top: -0.5em; |
||||
} |
||||
tt, |
||||
var { |
||||
font-family: monospace, monospace; |
||||
font-style: italic; |
||||
} |
||||
mark { |
||||
background: var(--primary); |
||||
} |
||||
acronym[title], abbr[title] { |
||||
border-bottom: none; |
||||
text-decoration: underline; |
||||
-webkit-text-decoration: underline dotted; |
||||
text-decoration: underline dotted; |
||||
} |
||||
abbr, |
||||
acronym { |
||||
cursor: help; |
||||
} |
||||
|
||||
/* Media |
||||
---------------------------------------- */ |
||||
audio, |
||||
canvas, |
||||
progress, |
||||
video { |
||||
vertical-align: baseline; |
||||
max-width:100%; |
||||
} |
||||
audio:not([controls]) { |
||||
display: none; |
||||
height: 0; |
||||
} |
||||
img, |
||||
picture, |
||||
svg { |
||||
max-width: 100% !important; |
||||
height: auto; |
||||
margin: 0; |
||||
padding: 0; |
||||
border: 0; |
||||
border-style: none; |
||||
vertical-align: middle; |
||||
} |
||||
svg:not(:root) { |
||||
overflow: hidden; |
||||
} |
||||
figure { |
||||
max-width: 100%; |
||||
height: auto; |
||||
margin: 1rem 0; |
||||
border: 0; |
||||
} |
||||
.align-left { |
||||
margin: 0 1rem 0 0; |
||||
} |
||||
.align-right { |
||||
margin: 0 0 0 1rem; |
||||
} |
||||
.align-center { |
||||
margin-top: 1rem; |
||||
margin-bottom: 1rem; |
||||
} |
||||
figcaption { |
||||
padding: 4px; |
||||
font-size: 0.8rem; |
||||
text-align: center; |
||||
} |
||||
.image-field { |
||||
margin: 0 0 1rem 0; |
||||
} |
||||
|
||||
/* Form |
||||
---------------------------------------- */ |
||||
form { |
||||
margin-bottom: 1rem; |
||||
} |
||||
button, |
||||
input, |
||||
optgroup, |
||||
select, |
||||
textarea { |
||||
font-family: inherit; |
||||
font-size: 100%; |
||||
line-height: 1.6; |
||||
margin: 0; |
||||
} |
||||
button, |
||||
input { |
||||
overflow: visible; |
||||
} |
||||
button, |
||||
select { |
||||
text-transform: none; |
||||
} |
||||
.button { |
||||
display:inline-block; |
||||
} |
||||
.button, |
||||
button, |
||||
[type="button"], |
||||
[type="reset"], |
||||
[type="submit"] { |
||||
position: relative; |
||||
cursor: pointer; |
||||
border: 0; |
||||
padding: 8px 10px; |
||||
line-height: 1.6; |
||||
-webkit-appearance: button; |
||||
} |
||||
button::-moz-focus-inner, |
||||
[type="button"]::-moz-focus-inner, |
||||
[type="reset"]::-moz-focus-inner, |
||||
[type="submit"]::-moz-focus-inner { |
||||
border-style: none; |
||||
padding: 0; |
||||
} |
||||
button:-moz-focusring, |
||||
[type="button"]:-moz-focusring, |
||||
[type="reset"]:-moz-focusring, |
||||
[type="submit"]:-moz-focusring { |
||||
outline: 0; |
||||
} |
||||
button[disabled], |
||||
html input[disabled] { |
||||
cursor: not-allowed; |
||||
opacity: 0.7; |
||||
} |
||||
::-webkit-file-upload-button { |
||||
-webkit-appearance: button; |
||||
font: inherit; |
||||
} |
||||
input, |
||||
button, |
||||
textarea, |
||||
select { |
||||
font: inherit; |
||||
} |
||||
input { |
||||
line-height: normal; |
||||
} |
||||
input, |
||||
textarea { |
||||
max-width: 100%; |
||||
} |
||||
input[type="text"], |
||||
input[type="email"], |
||||
input[type="url"], |
||||
input[type="password"], |
||||
input[type="search"], |
||||
textarea { |
||||
padding: 10px; |
||||
} |
||||
input[type="text"]:focus, |
||||
input[type="email"]:focus, |
||||
input[type="url"]:focus, |
||||
input[type="password"]:focus, |
||||
input[type="search"]:focus, |
||||
textarea:focus { |
||||
outline: 0; |
||||
} |
||||
textarea { |
||||
width: 100%; |
||||
overflow: auto; |
||||
} |
||||
[type="checkbox"], |
||||
[type="radio"] { |
||||
padding: 0; |
||||
cursor: pointer; |
||||
-webkit-box-sizing: border-box; |
||||
-moz-box-sizing: border-box; |
||||
box-sizing: border-box; |
||||
} |
||||
[type="number"]::-webkit-inner-spin-button, |
||||
[type="number"]::-webkit-outer-spin-button { |
||||
height: auto; |
||||
} |
||||
[type="search"] { |
||||
-webkit-appearance: textfield; |
||||
outline-offset: -2px; |
||||
-webkit-appearance: textfield; |
||||
-moz-appearance: textfield; |
||||
} |
||||
[type="search"]::-webkit-search-decoration { |
||||
-webkit-appearance: none; |
||||
} |
||||
[type="file"] { |
||||
cursor: pointer; |
||||
} |
||||
fieldset { |
||||
margin: 0 0 20px 0; |
||||
padding: 1rem; |
||||
} |
||||
fieldset > :last-child { |
||||
margin-bottom: 0; |
||||
} |
||||
legend { |
||||
box-sizing: border-box; |
||||
color: inherit; |
||||
display: table; |
||||
max-width: 100%; |
||||
padding: 0; |
||||
white-space: normal; |
||||
} |
||||
optgroup { |
||||
font-weight: bold; |
||||
} |
||||
select { |
||||
padding: 6px; |
||||
cursor: pointer; |
||||
} |
||||
label[for] { |
||||
cursor: pointer; |
||||
} |
||||
/* Form */ |
||||
.form-item { |
||||
margin-bottom: 1rem; |
||||
} |
||||
.form-required:after { |
||||
content: "*"; |
||||
display: inline-block; |
||||
padding-left: 4px; |
||||
color: red; |
||||
} |
||||
.form-item label { |
||||
display: block; |
||||
} |
||||
label.option { |
||||
display: inline; |
||||
font-weight: normal; |
||||
} |
||||
::-webkit-input-placeholder { |
||||
color: var(--border); |
||||
} |
||||
:-moz-placeholder { |
||||
color: var(--border); |
||||
} |
||||
::-moz-placeholder { |
||||
color: var(--border); |
||||
opacity: 1; |
||||
} |
||||
:-ms-input-placeholder { |
||||
color: var(--border); |
||||
} |
||||
.field--name-body input[type="text"], |
||||
.field--name-body input[type="email"], |
||||
.field--name-body input[type="url"], |
||||
.field--name-body input[type="password"], |
||||
.field--name-body input[type="search"], |
||||
.field--name-body textarea { |
||||
display: block; |
||||
margin-bottom: 0.8rem; |
||||
} |
||||
/* Common HTML Elements |
||||
---------------------------------------- */ |
||||
hr { |
||||
background-color: var(--border); |
||||
clear: both; |
||||
width: 100%; |
||||
max-width: 100%; |
||||
height: 2px; |
||||
border: 0; |
||||
-webkit-box-sizing: content-box; |
||||
box-sizing: content-box; |
||||
overflow: visible; |
||||
} |
||||
address { |
||||
margin: 0 0 1rem 0; |
||||
font-style: italic; |
||||
} |
||||
/* Definition Lists */ |
||||
dt { |
||||
font-weight: 700; |
||||
} |
||||
dd { |
||||
margin: 0 0 1.2rem 0; |
||||
} |
||||
blockquote { |
||||
position: relative; |
||||
background-color: var(--light); |
||||
margin: 1rem 0; |
||||
padding: 1rem; |
||||
} |
||||
blockquote > :last-child { |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
/* List |
||||
---------------------------------------- */ |
||||
ul, |
||||
ol { |
||||
margin: 0; |
||||
padding: 0 0 0.25rem 1rem; |
||||
} |
||||
[dir="rtl"] ul, |
||||
[dir="rtl"] ol { |
||||
padding: 0 1rem 0.25rem 0; |
||||
} |
||||
ol ol, |
||||
ul ul { |
||||
margin: 0; |
||||
padding: 0 0 0.25rem 1rem; |
||||
} |
||||
[dir="rtl"] ol ol, |
||||
[dir="rtl"] ul ul { |
||||
padding: 0 1rem 0.25rem 0; |
||||
} |
||||
ul { |
||||
list-style: disc; |
||||
} |
||||
li > ul, |
||||
li > ol { |
||||
margin-bottom: 0; |
||||
} |
||||
[dir="rtl"] ul, |
||||
[dir="rtl"] ol { |
||||
padding: 0 1rem 0.25rem 0; |
||||
} |
||||
li { |
||||
padding: 4px 0; |
||||
} |
||||
|
||||
/* Table |
||||
---------------------------------------- */ |
||||
table { |
||||
width: 100%; |
||||
margin-bottom: 1.2rem; |
||||
border-spacing: 0; |
||||
border-collapse: collapse; |
||||
} |
||||
th, |
||||
tr, |
||||
td { |
||||
vertical-align: middle; |
||||
} |
||||
th { |
||||
margin: 0; |
||||
padding: 5px; |
||||
text-align: left; |
||||
} |
||||
td { |
||||
padding: 5px; |
||||
} |
@ -0,0 +1,6 @@
|
||||
/* Common for all blocks */ |
||||
.block, |
||||
.block-title, |
||||
.block-content { |
||||
position: relative; |
||||
} |
File diff suppressed because one or more lines are too long
@ -0,0 +1,11 @@
|
||||
/* Clearing |
||||
--------------------------------------*/ |
||||
.clear { |
||||
position: relative; |
||||
} |
||||
.clear::before, |
||||
.clear::after { |
||||
content: ''; |
||||
display: table; |
||||
clear: both; |
||||
} |
@ -0,0 +1,83 @@
|
||||
#comments { |
||||
position: relative; |
||||
margin: 0; |
||||
} |
||||
.comments-title i, |
||||
.add-comment-title i { |
||||
font-size: 1em; |
||||
} |
||||
/* Comment -> comment form */ |
||||
.comment-form-wrap { |
||||
position: relative; |
||||
margin: 2rem 0 1rem 0; |
||||
} |
||||
.add-comment-title { |
||||
margin: 0; |
||||
} |
||||
.comment-form label { |
||||
display: block; |
||||
} |
||||
/* Comments -> single comment */ |
||||
.comment { |
||||
position: relative; |
||||
background-color: var(--light); |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
flex-direction: column; |
||||
width: 100%; |
||||
margin-bottom: 1rem; |
||||
padding: 1rem; |
||||
} |
||||
.comment-header { |
||||
position: relative; |
||||
display: flex; |
||||
width: 100%; |
||||
border-bottom: 2px solid var(--border); |
||||
padding: 1rem; |
||||
margin-bottom: 1rem; |
||||
} |
||||
.comment-user-picture { |
||||
position: relative; |
||||
text-align: center; |
||||
align-self: center; |
||||
} |
||||
.comment-user-picture img { |
||||
max-width: 100px; |
||||
height: auto; |
||||
} |
||||
.comment-user-picture .image-field { |
||||
margin: 0; |
||||
} |
||||
.comment-meta { |
||||
padding-left: 1rem; |
||||
} |
||||
h3.comment-title { |
||||
font-size: 1.2rem; |
||||
margin: 0.1rem 0; |
||||
} |
||||
.comment-meta p { |
||||
margin: 0 |
||||
} |
||||
.comment-body { |
||||
position: relative; |
||||
width: 100%; |
||||
-webkit-box-flex: 1; |
||||
-ms-flex: 1 1; |
||||
flex: 1 1; |
||||
} |
||||
#comments .indented { |
||||
margin-left: 3rem; |
||||
} |
||||
.comment-body .links { |
||||
display: flex; |
||||
gap: 1rem; |
||||
} |
||||
.comment-body .links a { |
||||
padding: 4px 12px; |
||||
border: 2px solid var(--border); |
||||
border-radius: 4px; |
||||
} |
||||
.comment-body .links a:hover { |
||||
background-color: #ffffff; |
||||
} |
@ -0,0 +1,217 @@
|
||||
|
||||
/* Admin Toolbar */ |
||||
button.toolbar-item, |
||||
button.toolbar-icon { |
||||
background: none; |
||||
} |
||||
|
||||
/* Drupal system message */ |
||||
.message { |
||||
position: relative; |
||||
margin: 1rem 0; |
||||
padding: 1rem 1rem 1rem 4rem; |
||||
color: #ffffff; |
||||
} |
||||
.message a, |
||||
.message a:visited { |
||||
color: #ffffff; |
||||
text-decoration: underline; |
||||
} |
||||
.message p:last-child { |
||||
margin: 0; |
||||
} |
||||
.message em { |
||||
font-style: italic; |
||||
} |
||||
.message-status { |
||||
background: #89ad32; |
||||
} |
||||
.message-status::before { |
||||
content: url(../images/icons/message/success.svg); |
||||
background: #759625; |
||||
} |
||||
.message-error { |
||||
background: #c94d1c; |
||||
} |
||||
.message-error::before { |
||||
content: url(../images/icons/message/error.svg); |
||||
background-color: #b3461b; |
||||
} |
||||
.message-warning { |
||||
background: #cd5a0a; |
||||
} |
||||
.message-warning::before { |
||||
content: url(../images/icons/message/warning.svg); |
||||
background-color: #a44707; |
||||
} |
||||
.message::before { |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
width: 3.6rem; |
||||
height: 100%; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-pack: center; |
||||
-ms-flex-pack: center; |
||||
justify-content: center; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
line-height: 0; |
||||
} |
||||
|
||||
/* Main -> Admin Tabs */ |
||||
ul.page-tabs { |
||||
margin: 0 0 0.6rem 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
border-bottom: 2px solid var(--primary); |
||||
} |
||||
.page-tabs li { |
||||
display: -webkit-inline-box; |
||||
display: -ms-inline-flexbox; |
||||
display: inline-flex; |
||||
padding: 0; |
||||
} |
||||
.page-tabs li a { |
||||
background-color: var(--dark); |
||||
color: #ffffff; |
||||
padding: 0.5rem 1rem; |
||||
border-right: 2px solid var(--border); |
||||
} |
||||
.page-tabs li.active-page-tab a, |
||||
.page-tabs li a:hover { |
||||
color: var(--primary); |
||||
} |
||||
/* Node submitted details */ |
||||
.node-submitted-details { |
||||
position: relative; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
flex-wrap: wrap; |
||||
} |
||||
.node-submitted-details { |
||||
-webkit-flex: 1 1 auto; |
||||
-ms-flex: 1 1 auto; |
||||
flex: 1 1 auto; |
||||
} |
||||
/* Entity reference */ |
||||
.node-taxonomy-container, .node-links-container { |
||||
position: relative; |
||||
display: block; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 1rem 0; |
||||
} |
||||
h3.term-title { |
||||
font-size: 1.2em; |
||||
} |
||||
ul.taxonomy-terms { |
||||
margin: 10px 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
list-style-type: none; |
||||
} |
||||
li.taxonomy-term { |
||||
position: relative; |
||||
display: inline-block; |
||||
padding: 0; |
||||
word-break: break-all; |
||||
} |
||||
li.taxonomy-term:not(:last-child) { |
||||
margin-right: 1rem; |
||||
} |
||||
.taxonomy-term a { |
||||
padding: 6px 14px; |
||||
border: 2px solid var(--border); |
||||
} |
||||
/* Node Links */ |
||||
.node-links-container ul.links { |
||||
position: relative; |
||||
margin: 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
list-style-type: none; |
||||
} |
||||
.node-links-container .links { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
flex-wrap: wrap; |
||||
} |
||||
ul.inline, |
||||
ul.links.inline { |
||||
padding-left: 0; |
||||
} |
||||
ul.inline li { |
||||
position: relative; |
||||
display: inline-block; |
||||
list-style-type: none; |
||||
} |
||||
ul.inline li a { |
||||
display: inline-block; |
||||
} |
||||
/* Pager */ |
||||
.pager { |
||||
position: relative; |
||||
} |
||||
.pager ul.pager__items { |
||||
position: relative; |
||||
margin: 0; |
||||
padding: 1rem 0; |
||||
list-style: none; |
||||
list-style-type: none; |
||||
} |
||||
.pager__items { |
||||
clear: both; |
||||
text-align: center; |
||||
} |
||||
.pager__item { |
||||
display: inline-block; |
||||
padding: 12px 0; |
||||
} |
||||
.pager__item a { |
||||
padding: 8px 14px; |
||||
color: #fff; |
||||
background: var(--dark); |
||||
} |
||||
.pager__item a:hover, |
||||
.pager__item.is-active a { |
||||
background: var(--primary); |
||||
color: #fff; |
||||
} |
||||
/* vertical Tabs */ |
||||
.vertical-tabs__panes { |
||||
padding: 1rem; |
||||
} |
||||
/* components -> Scroll To Top. */ |
||||
.scrolltop { |
||||
position: fixed; |
||||
display: none; |
||||
bottom: 10px; |
||||
right: 10px; |
||||
width: 50px; |
||||
height: 50px; |
||||
border-radius: 50%; |
||||
background: var(--primary); |
||||
color: #ffffff; |
||||
font-size: 20px; |
||||
z-index: 20; |
||||
cursor: pointer; |
||||
text-align: center; |
||||
padding: 4px; |
||||
-webkit-box-pack: center; |
||||
-ms-flex-pack: center; |
||||
justify-content: center; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
} |
||||
.scrolltop:hover { |
||||
background: var(--secondary); |
||||
} |
@ -0,0 +1,32 @@
|
||||
/** |
||||
* Drupal core |
||||
*/ |
||||
/* Core -> contextual-links */ |
||||
.header-top .contextual-links { |
||||
display: none; |
||||
} |
||||
/* Core -> Fields */ |
||||
[dir] .field:not(:last-child){ |
||||
margin-bottom:36px; |
||||
} |
||||
|
||||
.field__label { |
||||
font-weight: bold; |
||||
} |
||||
.field--label-inline .field__label, |
||||
.field--label-inline .field__items { |
||||
float: left; /* LTR */ |
||||
} |
||||
.field--label-inline .field__label, |
||||
.field--label-inline > .field__item, |
||||
.field--label-inline .field__items { |
||||
padding-right: 0.5rem; |
||||
} |
||||
[dir="rtl"] .field--label-inline .field__label, |
||||
[dir="rtl"] .field--label-inline .field__items { |
||||
padding-right: 0; |
||||
padding-left: 0.5rem; |
||||
} |
||||
.field--label-inline .field__label::after { |
||||
content: ":"; |
||||
} |
@ -0,0 +1,70 @@
|
||||
/* EU Cookie Compliance module */ |
||||
div#sliding-popup, div#sliding-popup .eu-cookie-withdraw-banner, .eu-cookie-withdraw-tab { |
||||
background-color: #ffffff; |
||||
box-shadow: 0 0 6px 2px var(--border); |
||||
left: 0; |
||||
} |
||||
#sliding-popup { |
||||
padding: 2rem; |
||||
max-width: 540px; |
||||
} |
||||
#sliding-popup .popup-content { |
||||
display: flex; |
||||
flex-direction: column; |
||||
gap: 1rem; |
||||
} |
||||
.eu-cookie-compliance-content { |
||||
max-width: 100%; |
||||
} |
||||
.eu-cookie-compliance-message { |
||||
float: none; |
||||
margin: 0; |
||||
max-width: 100%; |
||||
} |
||||
#sliding-popup div, |
||||
#sliding-popup h2 { |
||||
color: var( --color-heading); |
||||
} |
||||
#sliding-popup h2 { |
||||
font-size: 1.2rem; |
||||
} |
||||
#sliding-popup p { |
||||
display: block; |
||||
color: var(--color-text); |
||||
font-size: 1rem; |
||||
font-weight: 400; |
||||
} |
||||
.eu-cookie-compliance-message button { |
||||
background-color: transparent; |
||||
color: var(--primary); |
||||
margin: 0; |
||||
padding: 0; |
||||
border: 0; |
||||
} |
||||
.eu-cookie-compliance-message button:hover { |
||||
background-color: transparent; |
||||
color: var( --color-heading); |
||||
} |
||||
.eu-cookie-compliance-buttons { |
||||
display: flex; |
||||
gap: 1rem; |
||||
float: none; |
||||
margin: 0; |
||||
max-width: 100%; |
||||
} |
||||
.eu-cookie-compliance-buttons .button { |
||||
background-color: transparent; |
||||
background-image: none; |
||||
color: var(--primary); |
||||
font-weight: 400; |
||||
margin: 0; |
||||
padding: 8px 1rem; |
||||
border: 2px solid var( --color-heading); |
||||
text-shadow: none; |
||||
box-shadow: none; |
||||
border-radius: 0; |
||||
} |
||||
.eu-cookie-compliance-buttons .button:hover { |
||||
background-color: var( --color-heading); |
||||
color: #ffffff; |
||||
} |
@ -0,0 +1,166 @@
|
||||
/*! |
||||
* The-X icon font. Generated by Iconly: https://iconly.io/ |
||||
*/ |
||||
|
||||
@font-face { |
||||
font-display: auto; |
||||
font-family: "vre2024"; |
||||
font-style: normal; |
||||
font-weight: 400; |
||||
src: url("../fonts/vre2024.woff2") format("woff2"); |
||||
} |
||||
|
||||
[class="icon"], [class^="icon-"], [class*=" icon-"] { |
||||
display: inline-block; |
||||
font-family: "vre2024" !important; |
||||
font-weight: 400; |
||||
font-style: normal; |
||||
font-variant: normal; |
||||
text-rendering: auto; |
||||
line-height: 1; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
-webkit-font-smoothing: antialiased; |
||||
} |
||||
.icon-close:before { |
||||
content: "\e000"; |
||||
} |
||||
|
||||
.icon-search:before { |
||||
content: "\e001"; |
||||
} |
||||
|
||||
.icon-user:before { |
||||
content: "\e002"; |
||||
} |
||||
|
||||
.icon-calendar:before { |
||||
content: "\e003"; |
||||
} |
||||
|
||||
.icon-twitter:before { |
||||
content: "\e004"; |
||||
} |
||||
|
||||
.icon-facebook:before { |
||||
content: "\e005"; |
||||
} |
||||
|
||||
.icon-github:before { |
||||
content: "\e006"; |
||||
} |
||||
|
||||
.icon-linkedin:before { |
||||
content: "\e007"; |
||||
} |
||||
|
||||
.icon-comments:before { |
||||
content: "\e008"; |
||||
} |
||||
|
||||
.icon-file:before { |
||||
content: "\e009"; |
||||
} |
||||
|
||||
.icon-youtube:before { |
||||
content: "\e00a"; |
||||
} |
||||
|
||||
.icon-instagram:before { |
||||
content: "\e00b"; |
||||
} |
||||
|
||||
.icon-vk:before { |
||||
content: "\e00c"; |
||||
} |
||||
|
||||
.icon-whatsapp:before { |
||||
content: "\e00d"; |
||||
} |
||||
|
||||
.icon-vimeo:before { |
||||
content: "\e00e"; |
||||
} |
||||
|
||||
.icon-hashtag:before { |
||||
content: "\e00f"; |
||||
} |
||||
|
||||
.icon-telegram:before { |
||||
content: "\e010"; |
||||
} |
||||
|
||||
.icon-share:before { |
||||
content: "\e011"; |
||||
} |
||||
|
||||
.icon-mail:before { |
||||
content: "\e012"; |
||||
} |
||||
|
||||
.icon-map:before { |
||||
content: "\e013"; |
||||
} |
||||
|
||||
.icon-phone:before { |
||||
content: "\e014"; |
||||
} |
||||
|
||||
.icon-arrow-up:before { |
||||
content: "\e015"; |
||||
} |
||||
|
||||
.icon-horn:before { |
||||
content: "\e016"; |
||||
} |
||||
|
||||
.icon-bell:before { |
||||
content: "\e017"; |
||||
} |
||||
|
||||
.icon-info:before { |
||||
content: "\e018"; |
||||
} |
||||
|
||||
.icon-comment:before { |
||||
content: "\e019"; |
||||
} |
||||
|
||||
.icon-angle-left:before { |
||||
content: "\e01a"; |
||||
} |
||||
|
||||
.icon-angle-right:before { |
||||
content: "\e01b"; |
||||
} |
||||
|
||||
.icon-arrow-right:before { |
||||
content: "\e01c"; |
||||
} |
||||
|
||||
.icon-arrow-left:before { |
||||
content: "\e01d"; |
||||
} |
||||
|
||||
.icon-quote:before { |
||||
content: "\e01e"; |
||||
} |
||||
|
||||
.icon-clock:before { |
||||
content: "\e01f"; |
||||
} |
||||
|
||||
.icon-alert-circle:before { |
||||
content: "\e020"; |
||||
} |
||||
|
||||
.icon-alert:before { |
||||
content: "\e021"; |
||||
} |
||||
|
||||
.icon-check:before { |
||||
content: "\e022"; |
||||
} |
||||
|
||||
.icon-comment-add:before { |
||||
content: "\e024"; |
||||
} |
@ -0,0 +1,87 @@
|
||||
/** |
||||
* footer |
||||
*/ |
||||
/* Footer */ |
||||
.footer { |
||||
position: relative; |
||||
background-color: var(--light); |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
.footer ul { |
||||
list-style: none; |
||||
padding: 0; |
||||
} |
||||
.footer .block p:last-of-type { |
||||
margin: 0; |
||||
} |
||||
/* Footer -> Footer Top */ |
||||
.footer-top-container { |
||||
position: relative; |
||||
padding: 1rem 0; |
||||
} |
||||
.region-footer-top { |
||||
display: flex; |
||||
flex-direction: column; |
||||
gap: 1.5rem; |
||||
} |
||||
/* Footer -> 4 Column blocks */ |
||||
.footer-blocks-container { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-ms-flex-wrap: wrap; |
||||
flex-wrap: wrap; |
||||
padding: 2rem 0; |
||||
gap: 1.5rem; |
||||
} |
||||
.footer-block { |
||||
-webkit-box-flex: 1; |
||||
-ms-flex: 1 1 250px; |
||||
flex: 1 1 250px; |
||||
} |
||||
.footer-block li { |
||||
border-bottom: 1px solid var(--border); |
||||
} |
||||
/* Footer -> Footer Bottom */ |
||||
.footer-bottom-blocks-container { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
padding: 1rem 0; |
||||
gap: 2rem; |
||||
} |
||||
.footer-bottom-block { |
||||
flex: 1; |
||||
} |
||||
.footer-bottom-container { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
padding: 1rem 0; |
||||
gap: 2rem; |
||||
} |
||||
.footer-bottom-container p:last-child { |
||||
margin: 0; |
||||
} |
||||
.footer-bottom-last-menu { |
||||
margin: 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
} |
||||
.footer-bottom-last-menu li { |
||||
display: inline-block; |
||||
padding-left: 1rem; |
||||
} |
@ -0,0 +1,418 @@
|
||||
/* |
||||
* Header main |
||||
*/ |
||||
/* Header -> Header top */ |
||||
.header-top, |
||||
.header { |
||||
position: relative; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0.5rem 0; |
||||
} |
||||
.header-top-container { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
-webkit-box-pack: justify; |
||||
-ms-flex-pack: justify; |
||||
justify-content: space-between; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
gap: 1rem; |
||||
flex-wrap: wrap; |
||||
} |
||||
.region-header-top-left, |
||||
.region-header-top-right { |
||||
display: flex; |
||||
gap: 1rem; |
||||
flex-wrap: wrap; |
||||
} |
||||
.header-top-block p:last-of-type { |
||||
margin: 0; |
||||
} |
||||
.header-top ul { |
||||
display: flex; |
||||
gap: 10px; |
||||
flex-wrap: wrap; |
||||
margin: 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
list-style-type: none; |
||||
} |
||||
.header-top-block .block-title { |
||||
font-size: 1.2rem; |
||||
} |
||||
/* Header -> Header main */ |
||||
.header-main { |
||||
position: relative; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
.header-container { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-pack: justify; |
||||
-ms-flex-pack: justify; |
||||
justify-content: space-between; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
gap: 1rem; |
||||
} |
||||
/* Header -> Site branding */ |
||||
.site-branding { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
padding-right: 1rem; |
||||
} |
||||
.site-logo { |
||||
padding-right: 5px; |
||||
} |
||||
.site-logo img { |
||||
display: block; |
||||
} |
||||
.site-name-slogan { |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
-webkit-box-pack: center; |
||||
-ms-flex-pack: center; |
||||
justify-content: center; |
||||
} |
||||
.site-name, |
||||
.site-slogan { |
||||
line-height: 1.1; |
||||
} |
||||
|
||||
/* Header -> header right */ |
||||
.header-right { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
gap: 0.5rem; |
||||
} |
||||
.menu-wrap { |
||||
position: fixed; |
||||
background-color: var(--dark); |
||||
color: #ffffff; |
||||
top: 0; |
||||
bottom: 0; |
||||
left: 0; |
||||
margin: 0; |
||||
width: 100%; |
||||
max-width: 320px; |
||||
box-shadow: none; |
||||
z-index: 25; |
||||
-webkit-transform: translateX(-100%); |
||||
-ms-transform: translateX(-100%); |
||||
transform: translateX(-100%); |
||||
-webkit-transition: all 0.4s linear; |
||||
-o-transition: all 0.4s linear; |
||||
transition: all 0.4s linear; |
||||
} |
||||
.menu-wrap .menu { |
||||
position: relative; |
||||
display: flex; |
||||
flex-direction: column; |
||||
gap: 1rem; |
||||
flex-wrap: wrap; |
||||
margin: 0; |
||||
padding: 0; |
||||
font-size: 1rem; |
||||
font-weight: 400; |
||||
z-index: 30; |
||||
list-style: none; |
||||
list-style-type: none; |
||||
} |
||||
.menu-wrap .menu li { |
||||
position: relative; |
||||
padding: 0; |
||||
} |
||||
.menu-wrap a { |
||||
display: block; |
||||
color: #ffffff; |
||||
padding: 0.5rem 0; |
||||
} |
||||
.menu-wrap .menu > li a::after { |
||||
content: none; |
||||
} |
||||
.menu-wrap .submenu { |
||||
position: relative; |
||||
display: flex; |
||||
flex-direction: column; |
||||
font-weight: 400; |
||||
margin: 0; |
||||
padding: 0; |
||||
z-index: 30; |
||||
list-style: none; |
||||
list-style-type: none; |
||||
} |
||||
.menu-wrap .submenu li a, |
||||
.menu-wrap .submenu li > span { |
||||
display: flex; |
||||
width: 100%; |
||||
padding: 0.5rem; |
||||
} |
||||
.menu-wrap .menu-item a, |
||||
.menu-wrap .menu-item > span { |
||||
border-bottom: 1px solid var(--border); |
||||
} |
||||
.menu-wrap .submenu li > a, |
||||
.menu-wrap .submenu li > span { |
||||
padding-left: 1.5rem; |
||||
} |
||||
.menu-wrap .submenu .submenu .menu-item > a, |
||||
.menu-wrap .submenu .submenu .menu-item > span { |
||||
padding-left: 3rem; |
||||
} |
||||
/* Mobile Menu */ |
||||
.mobile-menu { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
justify-content: space-between; |
||||
width: 36px; |
||||
height: 28px; |
||||
overflow: hidden; |
||||
cursor: pointer; |
||||
} |
||||
.mobile-menu span { |
||||
width: 100%; |
||||
height: 2px; |
||||
background-color: var(--primary); |
||||
transform-origin: left; |
||||
transition: all 0.5s ease; |
||||
} |
||||
.mobile-menu span:nth-child(2) { |
||||
background-color: var(--secondary); |
||||
} |
||||
.menu-icon-active span:first-child { |
||||
transform: rotate(45deg); |
||||
} |
||||
.menu-icon-active span:last-child { |
||||
transform: rotate(-45deg); |
||||
} |
||||
.menu-icon-active span:nth-child(2) { |
||||
display: none; |
||||
} |
||||
.close-mobile-menu { |
||||
display: grid; |
||||
place-content: center; |
||||
position: absolute; |
||||
top: 4px; |
||||
right: 4px; |
||||
width: 34px; |
||||
height: 34px; |
||||
color: #ffffff; |
||||
border: 2px solid var(--primary); |
||||
border-radius: 50%; |
||||
z-index: 48; |
||||
cursor: pointer; |
||||
} |
||||
.active-menu .menu-wrap { |
||||
overflow-y: scroll; |
||||
-webkit-transform: translateX(0); |
||||
-ms-transform: translateX(0); |
||||
transform: translateX(0); |
||||
-webkit-transition: all 0.4s linear; |
||||
-o-transition: all 0.4s linear; |
||||
transition: all 0.4s linear; |
||||
padding: 1rem; |
||||
box-shadow: 6px 0 1rem #111111; |
||||
} |
||||
.active-menu .menu { |
||||
display: block; |
||||
} |
||||
/*slide up */ |
||||
@-webkit-keyframes slideUp { |
||||
0% { |
||||
-webkit-transform: translateY(20px); |
||||
transform: translateY(20px); |
||||
opacity: 0; |
||||
} |
||||
100% { |
||||
-webkit-transform: translateY(0px); |
||||
transform: translateY(0px); |
||||
opacity: 1; |
||||
} |
||||
} |
||||
@keyframes slideUp { |
||||
0% { |
||||
-webkit-transform: translateY(20px); |
||||
transform: translateY(20px); |
||||
opacity: 0; |
||||
} |
||||
100% { |
||||
-webkit-transform: translateY(0px); |
||||
transform: translateY(0px); |
||||
opacity: 1; |
||||
} |
||||
} |
||||
/* Header -> header search form */ |
||||
.full-page-search { |
||||
position: relative; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
.search-icon { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-pack: center; |
||||
-ms-flex-pack: center; |
||||
justify-content: center; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
cursor: pointer; |
||||
width: 34px; |
||||
height: 34px; |
||||
border-radius: 50%; |
||||
} |
||||
.search-icon i { |
||||
font-size: 24px; |
||||
} |
||||
.search-box { |
||||
position: fixed; |
||||
background-color: var(--light); |
||||
top: 0; |
||||
right: 0; |
||||
left: 0; |
||||
width: 100%; |
||||
z-index: 50; |
||||
-webkit-transform: translate(0, -100%); |
||||
-ms-transform: translate(0, -100%); |
||||
transform: translate(0, -100%); |
||||
-webkit-transition: -webkit-transform 0.5s; |
||||
transition: -webkit-transform 0.5s; |
||||
-o-transition: transform 0.5s; |
||||
transition: transform 0.5s; |
||||
transition: transform 0.5s, -webkit-transform 0.5s; |
||||
} |
||||
.search-box.open { |
||||
-webkit-transform: translate(0, 0); |
||||
-ms-transform: translate(0, 0); |
||||
transform: translate(0, 0); |
||||
} |
||||
.search-box-content { |
||||
position: relative; |
||||
padding: 2rem 0; |
||||
text-align: center; |
||||
z-index: 60; |
||||
} |
||||
.search-box-content form { |
||||
margin: 0; |
||||
} |
||||
.header-search-close { |
||||
position: absolute; |
||||
top: 1rem; |
||||
right: 0; |
||||
width: 34px; |
||||
height: 34px; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-pack: center; |
||||
-ms-flex-pack: center; |
||||
justify-content: center; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
color: var(--dark); |
||||
border: 3px solid var(--dark); |
||||
border-radius: 50%; |
||||
cursor: pointer; |
||||
font-weight: 700; |
||||
line-height: 1; |
||||
} |
||||
.search-box-content .block { |
||||
width: 100%; |
||||
margin: 0; |
||||
} |
||||
.search-box-content .block-title, |
||||
.search-box-content form label { |
||||
display: none; |
||||
color: #000000; |
||||
} |
||||
.search-box-content input[type="search"] { |
||||
width: 100%; |
||||
margin: 2rem 0; |
||||
padding: 0 2rem 4px 0; |
||||
font-size: 1.4rem; |
||||
background: url("../images/icons/search.svg") center right no-repeat; |
||||
background-size: contain; |
||||
border: 0; |
||||
border-bottom: 2px solid var(--border); |
||||
border-radius: 0; |
||||
outline: 0; |
||||
} |
||||
.search-box-content input[type="submit"] { |
||||
display: block; |
||||
margin: 0 auto; |
||||
padding: 0.5rem 1.5rem; |
||||
border-radius: 50px; |
||||
} |
||||
/* Header -> Page Header */ |
||||
.page-header { |
||||
position: relative; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 2rem 0 1rem 0; |
||||
} |
||||
.region-page-header { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
} |
||||
/* Header -> Page Header-> breadcrumb */ |
||||
.breadcrumb { |
||||
position: relative; |
||||
width: 100%; |
||||
} |
||||
.breadcrumb-items { |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
margin: 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
} |
||||
.breadcrumb-item { |
||||
padding: 0; |
||||
} |
||||
.breadcrumb-item span { |
||||
font-size: 14px; |
||||
margin: 0 5px; |
||||
} |
@ -0,0 +1,24 @@
|
||||
/* Highlighted Block Region */ |
||||
.highlighted { |
||||
position: relative; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
.region-highlighted { |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
} |
||||
.highlighted .block { |
||||
position: relative; |
||||
margin: 0; |
||||
padding: 1em 0; |
||||
} |
||||
.highlighted p:last-child { |
||||
margin: 0; |
||||
} |
@ -0,0 +1,11 @@
|
||||
.region-content-home-top, |
||||
.region-content-home-bottom { |
||||
display: flex; |
||||
flex-direction: column; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
.region-content-home-top { |
||||
margin-bottom: 2rem; |
||||
} |
@ -0,0 +1,73 @@
|
||||
/* |
||||
* Layout |
||||
*/ |
||||
/* Layout -> containers */ |
||||
.container { |
||||
position: relative; |
||||
width: 100%; |
||||
max-width: 1170px; |
||||
margin: 0 auto; |
||||
padding: 0 10px; |
||||
} |
||||
/* Layout -> Main wrapper (Main + Sidebar) */ |
||||
.main-wrapper { |
||||
position: relative; |
||||
display: block; |
||||
padding: 2rem 0; |
||||
} |
||||
.main-container { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
gap: 1.5rem; |
||||
} |
||||
/* Main |
||||
--------------------------------*/ |
||||
#main { |
||||
position: relative; |
||||
-webkit-box-ordinal-group: 1; |
||||
-ms-flex-order: 0; |
||||
order: 0; |
||||
} |
||||
#sidebar-left { |
||||
-webkit-box-ordinal-group: 2; |
||||
-ms-flex-order: 1; |
||||
order: 1; |
||||
} |
||||
#sidebar-right { |
||||
-webkit-box-ordinal-group: 3; |
||||
-ms-flex-order: 2; |
||||
order: 2; |
||||
} |
||||
/* No sidebar + main */ |
||||
.no-sidebar #main, |
||||
.sidebar-left #main, |
||||
.sidebar-right #main, |
||||
.two-sidebar #main, |
||||
#sidebar-left, |
||||
#sidebar-right { |
||||
-webkit-box-flex: 1; |
||||
-ms-flex: 1 1 100%; |
||||
flex: 1 1 100%; |
||||
width: 100%; |
||||
} |
||||
#front-main { |
||||
-webkit-box-flex: 1; |
||||
-ms-flex: 1 1 100%; |
||||
flex: 1 1 100%; |
||||
width: 100%; |
||||
margin: 0; |
||||
} |
||||
|
||||
/* Frontpage with Sidebar |
||||
--------------------------------*/ |
||||
.front-content-with-sidebar { |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
} |
@ -0,0 +1,41 @@
|
||||
#maintenance-page { |
||||
position: relative; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
width: 100%; |
||||
min-height: 100vh; |
||||
background: #ffffff; |
||||
color: #2d3436; |
||||
} |
||||
.maintenance-header { |
||||
position: relative; |
||||
width: 100%; |
||||
padding: 1rem 0; |
||||
} |
||||
.site-name h4 { |
||||
color: #f0932b; |
||||
line-height: 1; |
||||
font-weight: 700; |
||||
} |
||||
#maintenance { |
||||
position: relative; |
||||
margin: 0 auto; |
||||
padding: 1rem 0; |
||||
} |
||||
.maintenance { |
||||
text-align: center; |
||||
} |
||||
.maintenance-title { |
||||
color: #fff; |
||||
} |
||||
.maintenance-icon { |
||||
padding: 2rem 0; |
||||
} |
||||
.maintenance-icon img { |
||||
max-height: 50vh; |
||||
} |
@ -0,0 +1,20 @@
|
||||
/* Nodes */ |
||||
.node, |
||||
.node-promoted, |
||||
.node-sticky, |
||||
.node-view-mode-full, |
||||
.node-unpublished { |
||||
position: relative; |
||||
} |
||||
.node-view-mode-teaser { |
||||
position: relative; |
||||
margin-bottom: 4rem; |
||||
border-bottom: 4px double var(--border); |
||||
} |
||||
.node-view-mode-teaser.node-sticky { |
||||
border: 2px solid var(--border); |
||||
padding: 1rem; |
||||
} |
||||
.node-view-mode-full .node-taxonomy-container { |
||||
margin: 0; |
||||
} |
@ -0,0 +1,272 @@
|
||||
@media (min-width: 576px) { |
||||
.w10, |
||||
.w20, |
||||
.w30, |
||||
.w40, |
||||
.w50, |
||||
.w60, |
||||
.w70, |
||||
.w80, |
||||
.w90 { |
||||
flex-basis: calc(50% - 5px); |
||||
} |
||||
} |
||||
|
||||
@media (min-width: 768px) { |
||||
html { |
||||
font-size: 18px; |
||||
} |
||||
/* Header */ |
||||
.header-top-container { |
||||
-webkit-box-orient: horizontal; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: row; |
||||
flex-direction: row; |
||||
gap: 1rem; |
||||
} |
||||
/* Header -> Search form */ |
||||
.header-search-close { |
||||
top: 2rem; |
||||
} |
||||
.search-box-content .block-title { |
||||
display: block; |
||||
} |
||||
.breadcrumb-item span { |
||||
margin: 0 10px; |
||||
} |
||||
/* Main */ |
||||
.main-container { |
||||
-webkit-box-orient: horizontal; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: row; |
||||
flex-direction: row; |
||||
} |
||||
#main { |
||||
-webkit-box-ordinal-group: 2; |
||||
-ms-flex-order: 1; |
||||
order: 1; |
||||
} |
||||
#sidebar-left { |
||||
-webkit-box-ordinal-group: 1; |
||||
-ms-flex-order: 0; |
||||
order: 0; |
||||
} |
||||
#sidebar-right { |
||||
-webkit-box-ordinal-group: 3; |
||||
-ms-flex-order: 2; |
||||
order: 2; |
||||
} |
||||
/* one sidebar + main */ |
||||
.sidebar-left #main, |
||||
.sidebar-right #main { |
||||
-webkit-box-flex: 1; |
||||
-ms-flex: 1 1 70%; |
||||
flex: 1 1 70%; |
||||
} |
||||
/* Both sidebar + main */ |
||||
.two-sidebar #main { |
||||
-webkit-box-flex: 1; |
||||
-ms-flex: 1 1 40%; |
||||
flex: 1 1 40%; |
||||
} |
||||
/* Sidebar |
||||
--------------------------------*/ |
||||
#sidebar-left { |
||||
-webkit-box-flex: 0; |
||||
-ms-flex: 0 1 30%; |
||||
flex: 0 1 30%; |
||||
} |
||||
#sidebar-right { |
||||
-webkit-box-flex: 0; |
||||
-ms-flex: 0 1 30%; |
||||
flex: 0 1 30%; |
||||
} |
||||
/* Footer */ |
||||
.footer-container { |
||||
-webkit-box-orient: horizontal; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: row; |
||||
flex-direction: row; |
||||
} |
||||
.footer-bottom-blocks-container { |
||||
-webkit-box-orient: horizontal; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: row; |
||||
flex-direction: row; |
||||
-webkit-box-pack: justify; |
||||
-ms-flex-pack: justify; |
||||
justify-content: space-between; |
||||
} |
||||
|
||||
.footer-bottom-container { |
||||
-webkit-box-orient: horizontal; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: row; |
||||
flex-direction: row; |
||||
-webkit-box-pack: justify; |
||||
-ms-flex-pack: justify; |
||||
justify-content: space-between; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
} |
||||
.footer-bottom-last { |
||||
-webkit-box-orient: horizontal; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: row; |
||||
flex-direction: row; |
||||
-webkit-box-pack: justify; |
||||
-ms-flex-pack: justify; |
||||
justify-content: space-between; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
} |
||||
.copyright { |
||||
margin-bottom: 0; |
||||
} |
||||
/* shortcodes -> content width */ |
||||
.width30 { |
||||
width: 30%; |
||||
} |
||||
.width40 { |
||||
width: 40%; |
||||
} |
||||
.width50 { |
||||
width: 50%; |
||||
} |
||||
.width60 { |
||||
width: 60%; |
||||
} |
||||
.width70 { |
||||
width: 70%; |
||||
} |
||||
.width80 { |
||||
width: 80%; |
||||
} |
||||
.width90 { |
||||
width: 90%; |
||||
} |
||||
/* shortcodes -> responsive column */ |
||||
.w10 { |
||||
flex-basis: calc(10% - 10px); |
||||
} |
||||
.w20 { |
||||
flex-basis: calc(20% - 10px); |
||||
} |
||||
.w30 { |
||||
flex-basis: calc(30% - 10px); |
||||
} |
||||
.w40 { |
||||
flex-basis: calc(40% - 10px); |
||||
} |
||||
.w50 { |
||||
flex-basis: calc(50% - 10px); |
||||
} |
||||
.w60 { |
||||
flex-basis: calc(60% - 10px); |
||||
} |
||||
.w70 { |
||||
flex-basis: calc(70% - 10px); |
||||
} |
||||
.w80 { |
||||
flex-basis: calc(80% - 10px); |
||||
} |
||||
.w90 { |
||||
flex-basis: calc(90% - 10px); |
||||
} |
||||
/* Shortcodes -> responsive view */ |
||||
.view-in-mobile { |
||||
display: none; |
||||
} |
||||
.view-in-desktop { |
||||
display: block; |
||||
} |
||||
} |
||||
@media (min-width: 992px) { |
||||
th { |
||||
padding: 10px; |
||||
} |
||||
td { |
||||
padding: 5px 10px; |
||||
} |
||||
/* Header */ |
||||
.header-right { |
||||
gap: 1rem; |
||||
} |
||||
.menu-wrap { |
||||
position: relative; |
||||
background-color: transparent; |
||||
max-width: 100%; |
||||
-webkit-transform: translateX(0); |
||||
-ms-transform: translateX(0); |
||||
transform: translateX(0); |
||||
-webkit-transition: none; |
||||
-o-transition: none; |
||||
transition: none; |
||||
} |
||||
.menu-wrap .menu { |
||||
flex-direction: row; |
||||
} |
||||
.menu-wrap .menu, |
||||
.menu-wrap .menu a { |
||||
color: var(--primary); |
||||
} |
||||
.menu-wrap .menu-item a, |
||||
.menu-wrap .menu-item > span { |
||||
border-bottom: 0; |
||||
} |
||||
.menu-wrap .menu > li, |
||||
.menu-wrap .collapsed, |
||||
.menu-wrap .expanded, |
||||
.menu-wrap .menu-item-has-children { |
||||
display: inline-flex; |
||||
align-items: center; |
||||
} |
||||
.menu-wrap .collapsed:hover, |
||||
.menu-wrap .expanded:hover, |
||||
.menu-wrap .menu-item-has-children:hover { |
||||
background-color: var(--light); |
||||
} |
||||
.menu-wrap .collapsed::after, |
||||
.menu-wrap .expanded::after, |
||||
.menu-wrap .menu-item-has-children::after { |
||||
content: '+'; |
||||
} |
||||
.menu-wrap .submenu { |
||||
position: absolute; |
||||
display: none; |
||||
background-color: var(--light); |
||||
font-size: 0.9rem; |
||||
top: 100%; |
||||
min-width: 180px; |
||||
max-width: 200px; |
||||
opacity: 0; |
||||
} |
||||
.collapsed:hover > .submenu, |
||||
.expanded:hover > .submenu, |
||||
.menu-item-has-children:hover > .submenu { |
||||
display: flex; |
||||
-webkit-animation: slideUp 0.5s forwards; |
||||
animation: slideUp 0.5s forwards; |
||||
} |
||||
.menu-wrap .submenu li { |
||||
border-bottom: 1px solid var(--border); |
||||
} |
||||
.menu-wrap .submenu .submenu { |
||||
top: 0; |
||||
left: 100%; |
||||
} |
||||
.menu-wrap .submenu li > a, |
||||
.menu-wrap .submenu li > span { |
||||
padding: 0.5rem; |
||||
} |
||||
.menu-wrap .submenu .submenu .menu-item > a, |
||||
.menu-wrap .submenu .submenu .menu-item > span { |
||||
padding: 0.5rem; |
||||
} |
||||
.mobile-menu, |
||||
.close-mobile-menu { |
||||
display: none; |
||||
} |
||||
} |
@ -0,0 +1,28 @@
|
||||
/* Search result page |
||||
--------------------------------------*/ |
||||
.page-content input[type="search"] { |
||||
width: 80%; |
||||
} |
||||
ol.search-results { |
||||
margin: 1em 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
list-style-type: none; |
||||
} |
||||
ol.search-results li { |
||||
margin: 0 0 1em 0; |
||||
padding: 1rem; |
||||
background: var(--light); |
||||
} |
||||
.search-advanced summary { |
||||
margin: 10px 0; |
||||
cursor: pointer; |
||||
} |
||||
.search-advanced .form-details-wrapper { |
||||
padding: 0.5em 1.4em; |
||||
border: 1px solid var(--border); |
||||
} |
||||
.search-advanced .form-wrapper { |
||||
padding: 0.5em 1.4em; |
||||
border: 1px solid var(--border); |
||||
} |
@ -0,0 +1,330 @@
|
||||
/* Mobile and desktop display |
||||
================================= */ |
||||
.view-in-mobile { |
||||
display: block; |
||||
} |
||||
.view-in-desktop { |
||||
display: none; |
||||
} |
||||
/* Color and background |
||||
================================= */ |
||||
.primary { |
||||
color: var(--primary); |
||||
} |
||||
.secondary { |
||||
color: var(--secondary); |
||||
} |
||||
.dark { |
||||
color: var(--dark); |
||||
} |
||||
.light { |
||||
color: var(--light); |
||||
} |
||||
.bg-light { |
||||
background-color: var(--light); |
||||
} |
||||
/* Text Alignment |
||||
================================= */ |
||||
.text-left { |
||||
text-align: left; |
||||
} |
||||
.text-right { |
||||
text-align: right; |
||||
} |
||||
.text-center { |
||||
text-align: center; |
||||
} |
||||
.text-justify { |
||||
text-align: justify; |
||||
} |
||||
.center { |
||||
margin: 0 auto; |
||||
} |
||||
/* Inline content |
||||
================================= */ |
||||
.inline { |
||||
display: inline-block; |
||||
} |
||||
.inline:not(:last-child) { |
||||
padding-right: 1rem; |
||||
} |
||||
|
||||
/* Direction |
||||
================================= */ |
||||
.rtl { |
||||
direction: rtl; |
||||
} |
||||
.ltr { |
||||
direction: ltr; |
||||
} |
||||
|
||||
/* Font Size |
||||
================================= */ |
||||
.font-small { |
||||
font-size: 0.75rem; |
||||
} |
||||
.font-medium { |
||||
font-size: 1.25rem; |
||||
} |
||||
.font-large { |
||||
font-size: 1.5rem; |
||||
} |
||||
.font-2x { |
||||
font-size: 2rem; |
||||
} |
||||
.font-3x { |
||||
font-size: 2.5rem; |
||||
} |
||||
.font-4x { |
||||
font-size: 3rem; |
||||
} |
||||
.font-5x { |
||||
font-size: 4rem; |
||||
} |
||||
.font-6x { |
||||
font-size: 5rem; |
||||
} |
||||
.font-7x { |
||||
font-size: 6rem; |
||||
} |
||||
.font-8x { |
||||
font-size: 7rem; |
||||
} |
||||
|
||||
/* Font Icon Size |
||||
================================= */ |
||||
.size-xs { |
||||
font-size: 0.5em; |
||||
} |
||||
.size-small { |
||||
font-size: 0.75em; |
||||
} |
||||
.size-medium { |
||||
font-size: 1.25em; |
||||
} |
||||
.size-large { |
||||
font-size: 1.5em; |
||||
} |
||||
.size-2x { |
||||
font-size: 2em; |
||||
} |
||||
.size-3x { |
||||
font-size: 3em; |
||||
} |
||||
.size-4x { |
||||
font-size: 4em; |
||||
} |
||||
.size-5x { |
||||
font-size: 5em; |
||||
} |
||||
.size-6x { |
||||
font-size: 6em; |
||||
} |
||||
.size-7x { |
||||
font-size: 7em; |
||||
} |
||||
.size-8x { |
||||
font-size: 8em; |
||||
} |
||||
.size-9x { |
||||
font-size: 9em; |
||||
} |
||||
.size-10x { |
||||
font-size: 10em; |
||||
} |
||||
|
||||
/* image icons size |
||||
================================= */ |
||||
.icon-s { |
||||
max-height: 1rem; |
||||
} |
||||
.icon-m { |
||||
max-height: 1.5rem; |
||||
} |
||||
.icon-l { |
||||
max-height: 2rem; |
||||
} |
||||
.icon-xl { |
||||
max-height: 3rem; |
||||
} |
||||
.icon-x2 { |
||||
max-height: 4rem; |
||||
} |
||||
.icon-x3 { |
||||
max-height: 5rem; |
||||
} |
||||
.icon-x4 { |
||||
max-height: 6rem; |
||||
} |
||||
.icon-x5 { |
||||
max-height: 7rem; |
||||
} |
||||
.icon-x6 { |
||||
max-height: 8rem; |
||||
} |
||||
.icon-x7 { |
||||
max-height: 9rem; |
||||
} |
||||
.icon-x8 { |
||||
max-height: 10rem; |
||||
} |
||||
/* Content width |
||||
================================= */ |
||||
.width30, |
||||
.width40, |
||||
.width50, |
||||
.width60, |
||||
.width70, |
||||
.width80, |
||||
.width90 { |
||||
width: 100%; |
||||
clear: both; |
||||
display: block; |
||||
} |
||||
/* Empty width and height |
||||
================================= */ |
||||
.w20px { |
||||
display: inline-block; |
||||
width: 20px; |
||||
} |
||||
.w30px { |
||||
display: inline-block; |
||||
width: 30px; |
||||
} |
||||
.w40px { |
||||
display: inline-block; |
||||
width: 40px; |
||||
} |
||||
.w50px { |
||||
display: inline-block; |
||||
width: 50px; |
||||
} |
||||
.w70px { |
||||
display: inline-block; |
||||
width: 70px; |
||||
} |
||||
.w100px { |
||||
display: inline-block; |
||||
width: 100px; |
||||
} |
||||
.empty, |
||||
.spacer, |
||||
.spacer-x2, |
||||
.spacer-x3 { |
||||
width: 100%; |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-box-direction: normal; |
||||
-ms-flex-direction: column; |
||||
flex-direction: column; |
||||
} |
||||
.empty, |
||||
.spacer { |
||||
padding: 1rem 0; |
||||
} |
||||
.spacer-x2 { |
||||
padding: 2rem 0; |
||||
} |
||||
.spacer-x3 { |
||||
padding: 3rem 0; |
||||
} |
||||
/* Responsive Columns |
||||
================================= */ |
||||
.section { |
||||
position: relative; |
||||
display: block; |
||||
width: 100%; |
||||
padding: 3rem 0; |
||||
} |
||||
.section-small { |
||||
position: relative; |
||||
display: block; |
||||
width: 100%; |
||||
padding: 1rem 0; |
||||
} |
||||
.items { |
||||
display: grid; |
||||
grid-template-columns: repeat(auto-fit, minmax(265px, 1fr)); |
||||
grid-gap: 1rem; |
||||
gap: 1rem; |
||||
} |
||||
.item img { |
||||
display: block; |
||||
} |
||||
.columns { |
||||
display: -webkit-box; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
-webkit-box-pack: justify; |
||||
-ms-flex-pack: justify; |
||||
justify-content: space-between; |
||||
-ms-flex-wrap: wrap; |
||||
flex-wrap: wrap; |
||||
} |
||||
/* Create Equal width columns with no gap */ |
||||
.column { |
||||
flex: 1 1 230px; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
/* flex-items width */ |
||||
.w10, |
||||
.w20, |
||||
.w30, |
||||
.w40, |
||||
.w50, |
||||
.w60, |
||||
.w70, |
||||
.w80, |
||||
.w90 { |
||||
flex-basis: 100%; |
||||
} |
||||
/* Flex - Common for all |
||||
================================= */ |
||||
.space-between { |
||||
-webkit-box-pack: justify; |
||||
-ms-flex-pack: justify; |
||||
justify-content: space-between; |
||||
} |
||||
.v-center { |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
} |
||||
.h-center { |
||||
-webkit-box-pack: center; |
||||
-ms-flex-pack: center; |
||||
justify-content: center; |
||||
} |
||||
.vh-center { |
||||
-webkit-box-pack: center; |
||||
-ms-flex-pack: center; |
||||
justify-content: center; |
||||
-webkit-box-align: center; |
||||
-ms-flex-align: center; |
||||
align-items: center; |
||||
} |
||||
|
||||
/* Shortcodes -> box, icon box |
||||
================================= */ |
||||
.box, |
||||
.icon-box { |
||||
position: relative; |
||||
display: block; |
||||
padding: 1rem; |
||||
margin-bottom: 1rem; |
||||
} |
||||
.box p:last-child, |
||||
.icon-box p:last-child { |
||||
margin: 0; |
||||
} |
||||
/* Shortcodes -> grid column |
||||
================================= */ |
||||
.grid-row { |
||||
display: grid; |
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); |
||||
grid-gap: 1rem; |
||||
gap: 1rem; |
||||
} |
@ -0,0 +1,43 @@
|
||||
/* Sidebar |
||||
--------------------------------*/ |
||||
.sidebar { |
||||
position: relative; |
||||
width: 100%; |
||||
} |
||||
.region-sidebar-first, |
||||
.region-sidebar-second { |
||||
display: flex; |
||||
flex-direction: column; |
||||
gap: 2rem; |
||||
} |
||||
.sidebar .block { |
||||
background-color: var(--light); |
||||
padding: 1rem; |
||||
} |
||||
.sidebar ul, |
||||
.sidebar ol { |
||||
margin: 0; |
||||
padding: 0; |
||||
list-style-position: inside; |
||||
} |
||||
.sidebar ul { |
||||
list-style: none; |
||||
} |
||||
.sidebar li { |
||||
padding: 6px 0; |
||||
border-bottom: 1px solid var(--border); |
||||
} |
||||
.sidebar .block p:last-of-type { |
||||
margin: 0; |
||||
} |
||||
/* Sidebr -> Form */ |
||||
.sidebar input[type="text"], |
||||
.sidebar input[type="email"], |
||||
.sidebar input[type="url"], |
||||
.sidebar input[type="password"], |
||||
.sidebar input[type="search"], |
||||
.sidebar textarea { |
||||
width: 100%; |
||||
max-width: 100%; |
||||
border: 1px solid var(--border); |
||||
} |
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 434 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,48 @@
|
||||
/* Load jQuery. |
||||
--------------------------*/ |
||||
jQuery(document).ready(function ($) { |
||||
// Mobile menu.
|
||||
$('.mobile-menu').click(function () { |
||||
$(this).toggleClass('menu-icon-active'); |
||||
$(this).next('.primary-menu-wrapper').toggleClass('active-menu'); |
||||
}); |
||||
$('.close-mobile-menu').click(function () { |
||||
$(this).closest('.primary-menu-wrapper').toggleClass('active-menu'); |
||||
$('.mobile-menu').removeClass('menu-icon-active'); |
||||
}); |
||||
// Header search form
|
||||
$('.search-icon').on('click', function() { |
||||
$('.search-box').toggleClass('open'); |
||||
$('.search-box-content .form-search').focus(); |
||||
return false; |
||||
}); |
||||
$('.search-box-content input[type="search"]').attr("placeholder", "Type your search"); |
||||
|
||||
$('.header-search-close').on('click', function() { |
||||
$('.search-box').removeClass('open'); |
||||
return false; |
||||
}); |
||||
$('.search-box').on( 'keydown', function(e) { |
||||
if ( e.keyCode === 27 ) { |
||||
$('.search-box.open').removeClass('open'); |
||||
} |
||||
}); |
||||
$(document).on('click', function(event) { |
||||
if(!$(event.target).closest(".search-box-content").length) { |
||||
$('.search-box').removeClass('open'); |
||||
} |
||||
}) |
||||
// Scroll To Top.
|
||||
$(window).scroll(function () { |
||||
if ($(this).scrollTop() > 80) { |
||||
$('.scrolltop').css('display', 'flex'); |
||||
} else { |
||||
$('.scrolltop').fadeOut('slow'); |
||||
} |
||||
}); |
||||
$('.scrolltop').click(function () { |
||||
$('html, body').scrollTop(0); |
||||
}); |
||||
/* End document |
||||
--------------------------*/ |
||||
}); |
@ -0,0 +1,16 @@
|
||||
{ |
||||
"name": "vre2024", |
||||
"version": "1.0.0", |
||||
"description": "vre2024 - Drupal 8 and 9 Base Theme.", |
||||
"main": "bs.js", |
||||
"scripts": { |
||||
"test": "echo \"Error: no test specified\" && exit 1", |
||||
"bs": "node bs.js" |
||||
}, |
||||
"author": "", |
||||
"license": "ISC", |
||||
"devDependencies": { |
||||
"browser-sync": "^3.0.2", |
||||
"bs-rewrite-rules": "^2.1.2" |
||||
} |
||||
} |
After Width: | Height: | Size: 11 KiB |
@ -0,0 +1,38 @@
|
||||
{% extends "block.html.twig" %} |
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a branding block. |
||||
* |
||||
* Each branding element variable (logo, name, slogan) is only available if |
||||
* enabled in the block configuration. |
||||
* |
||||
* Available variables: |
||||
* - site_logo: Logo for site as defined in Appearance or theme settings. |
||||
* - site_name: Name for site as defined in Site information settings. |
||||
* - site_slogan: Slogan for site as defined in Site information settings. |
||||
*/ |
||||
#} |
||||
{% block content %} |
||||
<div class="site-branding"> |
||||
{% if site_logo %} |
||||
<div class="site-logo"> |
||||
<a href="{{ path('<front>') }}" rel="home"> |
||||
<img src="{{ site_logo }}" alt="{{ 'Home'|t }}" /> |
||||
</a> |
||||
</div><!-- site-logo --> |
||||
{% endif %} |
||||
{% if site_name or site_slogan %} |
||||
<div class="site-name-slogan"> |
||||
{% if site_name %} |
||||
<div class="site-name"> |
||||
<a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a> |
||||
</div> |
||||
{% endif %} |
||||
{% if site_slogan %} |
||||
<div class="site-slogan">{{ site_slogan }}</div> |
||||
{% endif %} |
||||
</div><!-- site-name-slogan --> |
||||
{% endif %} |
||||
</div><!-- site-branding --> |
||||
{% endblock %} |
@ -0,0 +1,48 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a menu 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: HTML attributes for the containing element. |
||||
* - id: A valid HTML ID and guaranteed unique. |
||||
* - title_attributes: HTML attributes for the title element. |
||||
* - content_attributes: HTML attributes for the content element. |
||||
* - 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. |
||||
* |
||||
* Headings should be used on navigation menus that consistently appear on |
||||
* multiple pages. When this menu block's label is configured to not be |
||||
* displayed, it is automatically made invisible using the 'visually-hidden' CSS |
||||
* class, which still keeps it visible for screen-readers and assistive |
||||
* technology. Headings allow screen-reader and keyboard only users to navigate |
||||
* to or skip the links. |
||||
* See http://juicystudio.com/article/screen-readers-display-none.php and |
||||
* http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. |
||||
*/ |
||||
#} |
||||
{% set heading_id = attributes.id ~ '-menu'|clean_id %} |
||||
<nav role="navigation" aria-labelledby="{{ heading_id }}"{{ attributes.addClass('block block-menu')|without('role', 'aria-labelledby') }}> |
||||
{# Label. If not displayed, we still provide it for screen readers. #} |
||||
{% if not configuration.label_display %} |
||||
{% set title_attributes = title_attributes.addClass('visually-hidden') %} |
||||
{% endif %} |
||||
{{ title_prefix }} |
||||
<h2{{ title_attributes.addClass('block-title').setAttribute('id', heading_id) }}>{{ configuration.label }}</h2> |
||||
{{ title_suffix }} |
||||
|
||||
{# Menu. #} |
||||
{% block content %} |
||||
{{ content }} |
||||
{% endblock %} |
||||
</nav> |
@ -0,0 +1,39 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override 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. |
||||
* - 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() |
||||
*/ |
||||
#} |
||||
<div{{ attributes.addClass('block') }}> |
||||
{{ title_prefix }} |
||||
{% if label %} |
||||
<h2{{ title_attributes.addClass('block-title') }}>{{ label }}</h2> |
||||
{% endif %} |
||||
{{ title_suffix }} |
||||
<div class="block-content"> |
||||
{% block content %} |
||||
{{ content }} |
||||
{% endblock %} |
||||
</div><!--/.block-content --> |
||||
</div><!--/.block --> |
@ -0,0 +1,18 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a filter caption. |
||||
* |
||||
* Returns HTML for a captioned image, audio, video or other tag. |
||||
* |
||||
* Available variables |
||||
* - string node: The complete HTML tag whose contents are being captioned. |
||||
* - string tag: The name of the HTML tag whose contents are being captioned. |
||||
* - string caption: The caption text. |
||||
* - string classes: The classes of the captioned HTML tag. |
||||
*/ |
||||
#} |
||||
<figure role="group" class="caption {%- if classes %} {{ classes }}{%- endif %}"> |
||||
{{ node }} |
||||
<figcaption>{{ caption }}</figcaption> |
||||
</figure> |
@ -0,0 +1,99 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme implementation for comments. |
||||
* |
||||
* Available variables: |
||||
* - author: Comment author. Can be a link or plain text. |
||||
* - content: The content-related items for the comment display. Use |
||||
* {{ content }} to print them all, or print a subset such as |
||||
* {{ content.field_example }}. Use the following code to temporarily suppress |
||||
* the printing of a given child element: |
||||
* @code |
||||
* {{ content|without('field_example') }} |
||||
* @endcode |
||||
* - created: Formatted date and time for when the comment was created. |
||||
* Preprocess functions can reformat it by calling format_date() with the |
||||
* desired parameters on the 'comment.created' variable. |
||||
* - changed: Formatted date and time for when the comment was last changed. |
||||
* Preprocess functions can reformat it by calling format_date() with the |
||||
* desired parameters on the 'comment.changed' variable. |
||||
* - permalink: Comment permalink. |
||||
* - submitted: Submission information created from author and created |
||||
* during template_preprocess_comment(). |
||||
* - user_picture: The comment author's profile picture. |
||||
* - status: Comment status. Possible values are: |
||||
* unpublished, published, or preview. |
||||
* - title: Comment title, linked to the comment. |
||||
* - attributes: HTML attributes for the containing element. |
||||
* The attributes.class may contain one or more of the following classes: |
||||
* - comment: The current template type; e.g., 'theming hook'. |
||||
* - by-anonymous: Comment by an unregistered user. |
||||
* - by-{entity-type}-author: Comment by the author of the parent entity, |
||||
* eg. by-node-author. |
||||
* - preview: When previewing a new or edited comment. |
||||
* The following applies only to viewers who are registered users: |
||||
* - unpublished: An unpublished comment visible only to administrators. |
||||
* - 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. |
||||
* - content_attributes: List of classes for the styling of the comment content. |
||||
* - title_attributes: Same as attributes, except applied to the main title |
||||
* tag that appears in the template. |
||||
* - threaded: A flag indicating whether the comments are threaded or not. |
||||
* |
||||
* These variables are provided to give context about the parent comment (if |
||||
* any): |
||||
* - comment_parent: Full parent comment entity (if any). |
||||
* - parent_author: Equivalent to author for the parent comment. |
||||
* - parent_created: Equivalent to created for the parent comment. |
||||
* - parent_changed: Equivalent to changed for the parent comment. |
||||
* - parent_title: Equivalent to title for the parent comment. |
||||
* - parent_permalink: Equivalent to permalink for the parent comment. |
||||
* - parent: A text string of parent comment submission information created from |
||||
* 'parent_author' and 'parent_created' during template_preprocess_comment(). |
||||
* This information is presented to help screen readers follow lengthy |
||||
* discussion threads. You can hide this from sighted users using the class |
||||
* visually-hidden. |
||||
* |
||||
* These two variables are provided for context: |
||||
* - comment: Full comment object. |
||||
* - entity: Entity the comments are attached to. |
||||
* |
||||
* @see template_preprocess_comment() |
||||
*/ |
||||
#} |
||||
{% |
||||
set classes = [ |
||||
status != 'published' ? status, |
||||
comment.owner.anonymous ? 'comment-by-anonymous', |
||||
author_id and author_id == commented_entity.getOwnerId() ? 'comment-by-author', |
||||
] |
||||
%} |
||||
<article{{ attributes.addClass('js-comment comment', classes) }}> |
||||
{# |
||||
Hide the "new" indicator by default, let a piece of JavaScript ask the |
||||
server which comments are new for the user. Rendering the final "new" |
||||
indicator here would break the render cache. |
||||
#} |
||||
<header class="comment-header"> |
||||
<div class="comment-user-picture"> |
||||
{{ user_picture }} |
||||
</div><!-- /comment-user-picture --> |
||||
<div class="comment-meta"> |
||||
{% if title %} |
||||
{{ title_prefix }} |
||||
<h3{{ title_attributes.addClass('comment-title') }}>{{ title }}</h3> |
||||
{{ title_suffix }} |
||||
{% endif %} |
||||
<p>{{ author }} {{ created }} <mark class="hidden" data-comment-timestamp="{{ new_indicator_timestamp }}"></mark></p> |
||||
{% if parent %} |
||||
<p class="visually-hidden">{{ parent }}</p> |
||||
{% endif %} |
||||
</div><!-- /comment-meta --> |
||||
</header> |
||||
<div{{ content_attributes.addClass('comment-body') }}> |
||||
{{ content }} |
||||
</div> <!-- /.comment-body --> |
||||
</article> |
@ -0,0 +1,103 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme implementation to display a node. |
||||
* |
||||
* Available variables: |
||||
* - node: The node entity with limited access to object properties and methods. |
||||
* Only method names starting with "get", "has", or "is" and a few common |
||||
* methods such as "id", "label", and "bundle" are available. For example: |
||||
* - node.getCreatedTime() will return the node creation timestamp. |
||||
* - node.hasField('field_example') returns TRUE if the node bundle includes |
||||
* field_example. (This does not indicate the presence of a value in this |
||||
* field.) |
||||
* - node.isPublished() will return whether the node is published or not. |
||||
* Calling other methods, such as node.delete(), will result in an exception. |
||||
* See \Drupal\node\Entity\Node for a full list of public properties and |
||||
* methods for the node object. |
||||
* - label: The title of the node. |
||||
* - content: All node items. Use {{ content }} to print them all, |
||||
* or print a subset such as {{ content.field_example }}. Use |
||||
* {{ content|without('field_example') }} to temporarily suppress the printing |
||||
* of a given child element. |
||||
* - author_picture: The node author user entity, rendered using the "compact" |
||||
* view mode. |
||||
* - metadata: Metadata for this node. |
||||
* - date: Themed creation date field. |
||||
* - author_name: Themed author name field. |
||||
* - url: Direct URL of the current node. |
||||
* - display_submitted: Whether submission information should be displayed. |
||||
* - attributes: HTML attributes for the containing element. |
||||
* The attributes.class element may contain one or more of the following |
||||
* classes: |
||||
* - node: The current template type (also known as a "theming hook"). |
||||
* - node--type-[type]: The current node type. For example, if the node is an |
||||
* "Article" it would result in "node--type-article". Note that the machine |
||||
* name will often be in a short form of the human readable label. |
||||
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a |
||||
* teaser would result in: "node--view-mode-teaser", and |
||||
* full: "node--view-mode-full". |
||||
* The following are controlled through the node publishing options. |
||||
* - node--promoted: Appears on nodes promoted to the front page. |
||||
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in |
||||
* teaser listings. |
||||
* - node--unpublished: Appears on unpublished nodes visible only to site |
||||
* admins. |
||||
* - 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. |
||||
* - author_attributes: Same as attributes, except applied to the author of |
||||
* the node 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. |
||||
* - view_mode: View mode; for example, "teaser" or "full". |
||||
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. |
||||
* - page: Flag for the full page state. Will be true if view_mode is 'full'. |
||||
* - readmore: Flag for more state. Will be true if the teaser content of the |
||||
* node cannot hold the main body content. |
||||
* - logged_in: Flag for authenticated user status. Will be true when the |
||||
* current user is a logged-in member. |
||||
* - is_admin: Flag for admin user status. Will be true when the current user |
||||
* is an administrator. |
||||
* |
||||
* @see template_preprocess_node() |
||||
*/ |
||||
#} |
||||
{% |
||||
set node_classes = [ |
||||
'node', |
||||
'node-type-' ~ node.bundle|clean_class, |
||||
node.isPromoted() ? 'node-promoted', |
||||
node.isSticky() ? 'node-sticky', |
||||
not node.isPublished() ? 'node-unpublished', |
||||
view_mode ? 'node-view-mode-' ~ view_mode|clean_class, |
||||
] |
||||
%} |
||||
<article{{ attributes.addClass(node_classes) }}> |
||||
{{ title_prefix }} |
||||
{% if not page %} |
||||
<h2{{ title_attributes.addClass('node-title') }}> |
||||
<a href="{{ url }}" rel="bookmark">{{ label }}</a> |
||||
</h2> |
||||
{% endif %} |
||||
{{ title_suffix }} |
||||
|
||||
{% if display_submitted %} |
||||
<header class="node-header clear"> |
||||
{% if node_author_pic %} |
||||
<div class="author-picture">{{ author_picture }}</div> |
||||
{% endif %} |
||||
<div{{ author_attributes.addClass('node-submitted-details') }}> |
||||
{% set createdDate = node.getCreatedTime|date('j F Y') %} |
||||
{% trans %}<span>{{ author_name }}</span> <span>{{ createdDate }}</span>{% endtrans %} |
||||
{{ metadata }} |
||||
</div> |
||||
</header> |
||||
{% endif %} |
||||
<div{{ content_attributes.addClass('node-content clear') }}> |
||||
{{ content }} |
||||
</div> |
||||
</article> |
@ -0,0 +1,21 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for page titles. |
||||
* |
||||
* Available variables: |
||||
* - title_attributes: HTML attributes for the page title element. |
||||
* - title_prefix: Additional output populated by modules, intended to be |
||||
* displayed in front of the main title tag that appears in the template. |
||||
* - title: The page title, for use in the actual content. |
||||
* - title_suffix: Additional output populated by modules, intended to be |
||||
* displayed after the main title tag that appears in the template. |
||||
*/ |
||||
#} |
||||
<div class="page-title-wrap"> |
||||
{{ title_prefix }} |
||||
{% if title %} |
||||
<h1{{ title_attributes.addClass('page-title') }}>{{ title }}</h1> |
||||
{% endif %} |
||||
{{ title_suffix }} |
||||
</div> <!--/.page-title-wrap --> |
@ -0,0 +1,29 @@
|
||||
{% extends "item-list.html.twig" %} |
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for an item list of search results. |
||||
* |
||||
* Available variables: |
||||
* - items: A list of items. Each item contains: |
||||
* - attributes: HTML attributes to be applied to each list item. |
||||
* - value: The content of the list element. |
||||
* - title: The title of the list. |
||||
* - list_type: The tag for list element ("ul" or "ol"). |
||||
* - attributes: HTML attributes to be applied to the list. |
||||
* - empty: A message to display when there are no items. Allowed value is a |
||||
* string or render array. |
||||
* - context: An list of contextual data associated with the list. For search |
||||
* results, the following data is set: |
||||
* - plugin: The search plugin ID, for example "node_search". |
||||
* |
||||
* @see template_preprocess_item_list() |
||||
*/ |
||||
#} |
||||
{% |
||||
set classes = [ |
||||
'search-results', |
||||
context.plugin ~ '-results', |
||||
] |
||||
%} |
||||
{% set attributes = attributes.addClass(classes) %} |
@ -0,0 +1,44 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for comment fields. |
||||
* |
||||
* Available variables: |
||||
* - attributes: HTML attributes for the containing element. |
||||
* - label_hidden: Whether to show the field label or not. |
||||
* - title_attributes: HTML attributes for the title. |
||||
* - label: The label for the field. |
||||
* - 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 title output populated by modules, intended to |
||||
* be displayed after the main title tag that appears in the template. |
||||
* - comments: List of comments rendered through comment.html.twig. |
||||
* - content_attributes: HTML attributes for the form title. |
||||
* - comment_form: The 'Add new comment' form. |
||||
* - comment_display_mode: Is the comments are threaded. |
||||
* - comment_type: The comment type bundle ID for the comment field. |
||||
* - entity_type: The entity type to which the field belongs. |
||||
* - field_name: The name of the field. |
||||
* - field_type: The type of the field. |
||||
* - label_display: The display settings for the label. |
||||
* |
||||
* @see template_preprocess_field() |
||||
* @see comment_preprocess_field() |
||||
*/ |
||||
#} |
||||
<section{{ attributes }} id="comments"> |
||||
{% if comments and not label_hidden %} |
||||
{{ title_prefix }} |
||||
<h2{{ title_attributes.addClass('comments-title') }}>{{ label }}</h2> |
||||
{{ title_suffix }} |
||||
{% endif %} |
||||
|
||||
{{ comments }} |
||||
|
||||
{% if comment_form %} |
||||
<div class="comment-form-wrap"> |
||||
<h2{{ content_attributes.addClass('add-comment-title') }}>{{ 'Add new comment'|t }}</h2> |
||||
{{ comment_form }} |
||||
</div> <!--/.comment-form --> |
||||
{% endif %} |
||||
</section> |
@ -0,0 +1,32 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for term fields. |
||||
* |
||||
* Available variables: |
||||
* - attributes: HTML attributes for the containing element. |
||||
* - label_hidden: Whether to show the field label or not. |
||||
* - title_attributes: HTML attributes for the label. |
||||
* - label: The label for the field. |
||||
* - content_attributes: HTML attributes for the content. |
||||
* - items: List of all the field items. Each item contains: |
||||
* - attributes: List of HTML attributes for each item. |
||||
* - content: The field item's content. |
||||
* - entity_type: The entity type to which the field belongs. |
||||
* - field_name: The name of the field. |
||||
* - field_type: The type of the field. |
||||
* - label_display: The display settings for the label. |
||||
* |
||||
* @see template_preprocess_field() |
||||
*/ |
||||
#} |
||||
<div class="node-taxonomy-container"> |
||||
{% if not label_hidden %} |
||||
<h3{{ title_attributes.addClass('term-title') }}>{{ label }}</h3> |
||||
{% endif %} |
||||
<ul class="taxonomy-terms"> |
||||
{% for item in items %} |
||||
<li{{ item.attributes.addClass('taxonomy-term') }}>{{ item.content }}</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> <!--/.node-taxonomy-container --> |
@ -0,0 +1,80 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a field. |
||||
* |
||||
* To override output, copy the "field.html.twig" from the templates directory |
||||
* to your theme's directory and customize it, just like customizing other |
||||
* Drupal templates such as page.html.twig or node.html.twig. |
||||
* |
||||
* Instead of overriding the theming for all fields, you can also just override |
||||
* theming for a subset of fields using |
||||
* @link themeable Theme hook suggestions. @endlink For example, |
||||
* here are some theme hook suggestions that can be used for a field_foo field |
||||
* on an article node type: |
||||
* - field--node--field-foo--article.html.twig |
||||
* - field--node--field-foo.html.twig |
||||
* - field--node--article.html.twig |
||||
* - field--field-foo.html.twig |
||||
* - field--text-with-summary.html.twig |
||||
* - field.html.twig |
||||
* |
||||
* Available variables: |
||||
* - attributes: HTML attributes for the containing element. |
||||
* - label_hidden: Whether to show the field label or not. |
||||
* - title_attributes: HTML attributes for the title. |
||||
* - label: The label for the field. |
||||
* - multiple: TRUE if a field can contain multiple items. |
||||
* - items: List of all the field items. Each item contains: |
||||
* - attributes: List of HTML attributes for each item. |
||||
* - content: The field item's content. |
||||
* - entity_type: The entity type to which the field belongs. |
||||
* - field_name: The name of the field. |
||||
* - field_type: The type of the field. |
||||
* - label_display: The display settings for the label. |
||||
* |
||||
* |
||||
* @see template_preprocess_field() |
||||
*/ |
||||
#} |
||||
{% |
||||
set classes = [ |
||||
'field', |
||||
'field--name-' ~ field_name|clean_class, |
||||
'field--type-' ~ field_type|clean_class, |
||||
'field--label-' ~ label_display, |
||||
] |
||||
%} |
||||
{% |
||||
set title_classes = [ |
||||
'field__label', |
||||
label_display == 'visually_hidden' ? 'visually-hidden', |
||||
] |
||||
%} |
||||
|
||||
{% if label_hidden %} |
||||
{% if multiple %} |
||||
<div{{ attributes }}> |
||||
{% for item in items %} |
||||
<div{{ item.attributes.addClass('field-item') }}>{{ item.content }}</div> |
||||
{% endfor %} |
||||
</div> |
||||
{% else %} |
||||
{% for item in items %} |
||||
<div{{ attributes.addClass(classes, 'field-item') }}>{{ item.content }}</div> |
||||
{% endfor %} |
||||
{% endif %} |
||||
{% else %} |
||||
<div{{ attributes.addClass(classes) }}> |
||||
<div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div> |
||||
{% if multiple %} |
||||
<div class="field__items"> |
||||
{% endif %} |
||||
{% for item in items %} |
||||
<div{{ item.attributes.addClass('field-item') }}>{{ item.content }}</div> |
||||
{% endfor %} |
||||
{% if multiple %} |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
{% endif %} |
@ -0,0 +1,13 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override of an image. |
||||
* |
||||
* Available variables: |
||||
* - attributes: HTML attributes for the img tag. |
||||
* - style_name: (optional) The name of the image style applied. |
||||
* |
||||
* @see template_preprocess_image() |
||||
*/ |
||||
#} |
||||
<img{{ attributes.addClass('image-field') }} /> |
@ -0,0 +1,43 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a details element. |
||||
* |
||||
* Available variables |
||||
* - attributes: A list of HTML attributes for the details element. |
||||
* - errors: (optional) Any errors for this details element, may not be set. |
||||
* - title: (optional) The title of the element, may not be set. |
||||
* - description: (optional) The description of the element, may not be set. |
||||
* - children: (optional) The children of the element, may not be set. |
||||
* - value: (optional) The value of the element, may not be set. |
||||
* |
||||
* @see template_preprocess_details() |
||||
*/ |
||||
#} |
||||
<details{{ attributes }}> |
||||
{%- if title -%} |
||||
{% |
||||
set summary_classes = [ |
||||
required ? 'js-form-required', |
||||
required ? 'form-required', |
||||
] |
||||
%} |
||||
<summary{{ summary_attributes.addClass(summary_classes) }}>{{ title }}</summary> |
||||
{%- endif -%} |
||||
<div class="form-details-wrapper"> |
||||
{% if errors %} |
||||
<div class="form-item--error-message"> |
||||
<strong>{{ errors }}</strong> |
||||
</div> |
||||
{% endif %} |
||||
{%- if description -%} |
||||
<div class="details-description">{{ description }}</div> |
||||
{%- endif -%} |
||||
{%- if children -%} |
||||
{{ children }} |
||||
{%- endif -%} |
||||
{%- if value -%} |
||||
{{ value }} |
||||
{%- endif -%} |
||||
</div> |
||||
</details> |
@ -0,0 +1,59 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for the basic structure of a single Drupal page. |
||||
* |
||||
* Variables: |
||||
* - logged_in: A flag indicating if user is logged in. |
||||
* - root_path: The root path of the current page (e.g., node, admin, user). |
||||
* - node_type: The content type for the current node, if the page is a node. |
||||
* - head_title: List of text elements that make up the head_title variable. |
||||
* May contain one or more of the following: |
||||
* - title: The title of the page. |
||||
* - name: The name of the site. |
||||
* - slogan: The slogan of the site. |
||||
* - page_top: Initial rendered markup. This should be printed before 'page'. |
||||
* - page: The rendered page markup. |
||||
* - page_bottom: Closing rendered markup. This variable should be printed after |
||||
* 'page'. |
||||
* - db_offline: A flag indicating if the database is offline. |
||||
* - placeholder_token: The token for generating head, css, js and js-bottom |
||||
* placeholders. |
||||
* |
||||
* @see template_preprocess_html() |
||||
*/ |
||||
#} |
||||
{# Add class to body #} |
||||
{% |
||||
set body_classes = [ |
||||
not root_path ? 'homepage' : 'site-page', |
||||
node_type ? 'page-type-' ~ node_type|clean_class, |
||||
logged_in ? 'user-logged-in' : 'user-guest', |
||||
not page.sidebar_first and not page.sidebar_second ? 'no-sidebar', |
||||
page.sidebar_first and not page.sidebar_second ? 'one-sidebar sidebar-left', |
||||
page.sidebar_second and not page.sidebar_first ? 'one-sidebar sidebar-right', |
||||
page.sidebar_first and page.sidebar_second ? 'two-sidebar' |
||||
] |
||||
%} |
||||
<!DOCTYPE html> |
||||
<html{{ html_attributes }}> |
||||
<head> |
||||
<head-placeholder token="{{ placeholder_token }}"> |
||||
<title>{{ head_title|safe_join(' | ') }}</title> |
||||
<css-placeholder token="{{ placeholder_token }}"> |
||||
<js-placeholder token="{{ placeholder_token }}"> |
||||
</head> |
||||
<body{{ attributes.addClass(body_classes) }}> |
||||
{# |
||||
Keyboard navigation/accessibility link to main content section in |
||||
page.html.twig. |
||||
#} |
||||
<a href="#main-content" class="visually-hidden focusable"> |
||||
{{ 'Skip to main content'|t }} |
||||
</a> |
||||
{{ page_top }} |
||||
{{ page }} |
||||
{{ page_bottom }} |
||||
<js-bottom-placeholder token="{{ placeholder_token }}"> |
||||
</body> |
||||
</html> |
@ -0,0 +1,46 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme implementation to display a single Drupal page while offline. |
||||
* |
||||
* All available variables are mirrored in page.html.twig. |
||||
* |
||||
* @see template_preprocess_maintenance_page() |
||||
*/ |
||||
#} |
||||
<div id="maintenance-page"> |
||||
<header class="maintenance-header" role="banner"> |
||||
<div class="container"> |
||||
<div class="site-branding"> |
||||
{% if site_name or site_slogan %} |
||||
<div class="site-name-slogan"> |
||||
{% if site_name %} |
||||
<div class="site-name"> |
||||
<a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home"><h4>{{ site_name }}</h4></a> |
||||
</div> |
||||
{% endif %} |
||||
{% if site_slogan %} |
||||
<div class="site-slogan">{{ site_slogan }}</div> |
||||
{% endif %} |
||||
</div> <!--/.site-name-slogan --> |
||||
{% endif %} |
||||
</div> <!-- /.site-branding --> |
||||
</div> <!--/.container --> |
||||
</header> |
||||
<main id="maintenance"> |
||||
<div class="container maintenance"> |
||||
<a id="main-content" tabindex="-1"></a> |
||||
{% if title %} |
||||
<h1 class="maintenance-title">{{ title }}</h1> |
||||
{% endif %} |
||||
<div class="maintenance-icon"> |
||||
{{ source('@vre2024/../images/maintenance.svg') }} |
||||
</div> |
||||
<div class="maintenance-message"> |
||||
{{ page.content }} |
||||
</div> |
||||
</div> <!-- /.container --> |
||||
</main> <!-- /#maintenance --> |
||||
</div><!-- /#maintenance-page --> |
||||
<!-- Zuvi has custom styling for the maintenance page. --> |
||||
{{ attach_library('vre2024/maintenance') }} |
@ -0,0 +1,35 @@
|
||||
{% if page.header_top_left or page.header_top_right %} |
||||
{% include '@vre2024/template-parts/header/header-top.html.twig' %} |
||||
{% endif %} |
||||
{% include '@vre2024/template-parts/header/header.html.twig' %} |
||||
{% if not is_front and page.page_header %} |
||||
{% include '@vre2024/template-parts/header/header-page.html.twig' %} |
||||
{% endif %} |
||||
{% if page.highlighted %} |
||||
{% include '@vre2024/template-parts/highlighted.html.twig' %} |
||||
{% endif %} |
||||
<div class="main-wrapper"> |
||||
<div class="container"> |
||||
<a id="main-content" tabindex="-1"></a> |
||||
<div class="main-container"> |
||||
<main id="main" class="main-content"> |
||||
{% if page.content_top %} |
||||
{% include '@vre2024/template-parts/content-parts/content_top.html.twig' %} |
||||
{% endif %} |
||||
<div class="node-content"> |
||||
{{ page.content }} |
||||
</div> |
||||
{% if page.content_bottom %} |
||||
{% include '@vre2024/template-parts/content-parts/content_bottom.html.twig' %} |
||||
{% endif %} |
||||
</main> |
||||
{% if page.sidebar_first %} |
||||
{% include '@vre2024/template-parts/sidebar/sidebar_left.html.twig' %} |
||||
{% endif %} |
||||
{% if page.sidebar_second %} |
||||
{% include '@vre2024/template-parts/sidebar/sidebar_right.html.twig' %} |
||||
{% endif %} |
||||
</div><!--/main-container --> |
||||
</div><!--/container --> |
||||
</div><!--/main-wrapper --> |
||||
{% include '@vre2024/template-parts/footer/footer.html.twig' %} |
@ -0,0 +1,25 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override to display a region. |
||||
* |
||||
* Available variables: |
||||
* - content: The content for this region, typically blocks. |
||||
* - attributes: HTML attributes for the region div. |
||||
* - region: The name of the region variable as defined in the theme's |
||||
* .info.yml file. |
||||
* |
||||
* @see template_preprocess_region() |
||||
*/ |
||||
#} |
||||
{% |
||||
set classes = [ |
||||
'block-region', |
||||
'region-' ~ region|clean_class, |
||||
] |
||||
%} |
||||
{% if content %} |
||||
<div{{ attributes.addClass(classes) }}> |
||||
{{ content }} |
||||
</div> |
||||
{% endif %} |
@ -0,0 +1,53 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for status messages. |
||||
* |
||||
* Displays status, error, and warning messages, grouped by type. |
||||
* |
||||
* An invisible heading identifies the messages for assistive technology. |
||||
* Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html |
||||
* for info. |
||||
* |
||||
* Add an ARIA label to the contentinfo area so that assistive technology |
||||
* user agents will better describe this landmark. |
||||
* |
||||
* Available variables: |
||||
* - message_list: List of messages to be displayed, grouped by type. |
||||
* - status_headings: List of all status types. |
||||
* - display: (optional) May have a value of 'status' or 'error' when only |
||||
* displaying messages of that specific type. |
||||
* - attributes: HTML attributes for the element, including: |
||||
* - class: HTML classes. |
||||
*/ |
||||
#} |
||||
<div data-drupal-messages class="messages-list"> |
||||
{% for type, messages in message_list %} |
||||
{% |
||||
set classes = [ |
||||
'message', |
||||
'message-' ~ type, |
||||
] |
||||
%} |
||||
<div role="contentinfo" aria-label="{{ status_headings[type] }}"{{ attributes.addClass(classes)|without('role', 'aria-label') }}> |
||||
{% if type == 'error' %} |
||||
<div role="alert" class="status-error"> |
||||
{% endif %} |
||||
{% if status_headings[type] %} |
||||
<h2 class="visually-hidden">{{ status_headings[type] }}</h2> |
||||
{% endif %} |
||||
{% if messages|length > 1 %} |
||||
<ul class="status-message-list"> |
||||
{% for message in messages %} |
||||
<li>{{ message }}</li> |
||||
{% endfor %} |
||||
</ul> |
||||
{% else %} |
||||
{{ messages|first }} |
||||
{% endif %} |
||||
{% if type == 'error' %} |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
{% endfor %} |
||||
</div>{# messages-list #} |
@ -0,0 +1,56 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override to navigate books. |
||||
* |
||||
* Presented under nodes that are a part of book outlines. |
||||
* |
||||
* Available variables: |
||||
* - tree: The immediate children of the current node rendered as an unordered |
||||
* list. |
||||
* - current_depth: Depth of the current node within the book outline. Provided |
||||
* for context. |
||||
* - prev_url: URL to the previous node. |
||||
* - prev_title: Title of the previous node. |
||||
* - parent_url: URL to the parent node. |
||||
* - parent_title: Title of the parent node. Not printed by default. Provided |
||||
* as an option. |
||||
* - next_url: URL to the next node. |
||||
* - next_title: Title of the next node. |
||||
* - has_links: Flags TRUE whenever the previous, parent or next data has a |
||||
* value. |
||||
* - book_id: The book ID of the current outline being viewed. Same as the node |
||||
* ID containing the entire outline. Provided for context. |
||||
* - book_url: The book/node URL of the current outline being viewed. Provided |
||||
* as an option. Not used by default. |
||||
* - book_title: The book/node title of the current outline being viewed. |
||||
* |
||||
* @see template_preprocess_book_navigation() |
||||
*/ |
||||
#} |
||||
{{ attach_library('vre2024/book') }} |
||||
{% if tree or has_links %} |
||||
<nav class="book-navigation" role="navigation" aria-labelledby="book-label-{{ book_id }}"> |
||||
{{ tree }} |
||||
{% if has_links %} |
||||
<h2 class="visually-hidden">{{ 'Book traversal links for'|t }} {{ book_title }}</h2> |
||||
<ul class="book-pager"> |
||||
{% if prev_url %} |
||||
<li class="book-pager-item book-pager-item-previous"> |
||||
<a href="{{ prev_url }}" rel="prev" title="{{ 'Go to previous page'|t }}"><span class="white-color">←</span> {{ prev_title }}</a> |
||||
</li> |
||||
{% endif %} |
||||
{% if parent_url %} |
||||
<li class="book-pager-item book-pager-item-center"> |
||||
<a href="{{ parent_url }}" title="{{ 'Go to parent page'|t }}"><span class="white-color">⤊</span> {{ 'Up'|t }}</a> |
||||
</li> |
||||
{% endif %} |
||||
{% if next_url %} |
||||
<li class="book-pager-item book-pager-item-next"> |
||||
<a href="{{ next_url }}" rel="next" title="{{ 'Go to next page'|t }}">{{ next_title }} <span class="white-color">→</span></a> |
||||
</li> |
||||
{% endif %} |
||||
</ul> |
||||
{% endif %} |
||||
</nav> |
||||
{% endif %} |
@ -0,0 +1,47 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override to display a book tree. |
||||
* |
||||
* Returns HTML for a wrapper for a book sub-tree. |
||||
* |
||||
* Available variables: |
||||
* - items: A nested list of book items. Each book item contains: |
||||
* - attributes: HTML attributes for the book item. |
||||
* - below: The book item child items. |
||||
* - title: The book link title. |
||||
* - url: The book link URL, instance of \Drupal\Core\Url. |
||||
* - is_expanded: TRUE if the link has visible children within the current |
||||
* book tree. |
||||
* - is_collapsed: TRUE if the link has children within the current book tree |
||||
* that are not currently visible. |
||||
* - in_active_trail: TRUE if the link is in the active trail. |
||||
*/ |
||||
#} |
||||
{% import _self as book_tree %} |
||||
|
||||
{# |
||||
We call a macro which calls itself to render the full tree. |
||||
@see http://twig.sensiolabs.org/doc/tags/macro.html |
||||
#} |
||||
{{ book_tree.book_links(items, attributes, 0) }} |
||||
|
||||
{% macro book_links(items, attributes, menu_level) %} |
||||
{% import _self as book_tree %} |
||||
{% if items %} |
||||
{% if menu_level == 0 %} |
||||
<ul{{ attributes.addClass('menu') }}> |
||||
{% else %} |
||||
<ul class="menu"> |
||||
{% endif %} |
||||
{% for item in items %} |
||||
<li{{ item.attributes.addClass('menu-book-item') }}> |
||||
{{ link(item.title, item.url) }} |
||||
{% if item.below %} |
||||
{{ book_tree.book_links(item.below, attributes, menu_level + 1) }} |
||||
{% endif %} |
||||
</li> |
||||
{% endfor %} |
||||
</ul> |
||||
{% endif %} |
||||
{% endmacro %} |
@ -0,0 +1,24 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a breadcrumb trail. |
||||
* |
||||
* Available variables: |
||||
* - breadcrumb: Breadcrumb trail items. |
||||
*/ |
||||
#} |
||||
{% if breadcrumb %} |
||||
<nav class="breadcrumb" role="navigation" aria-labelledby="system-breadcrumb"> |
||||
<ol class="breadcrumb-items"> |
||||
{% for item in breadcrumb %} |
||||
<li class="breadcrumb-item"> |
||||
{% if item.url %} |
||||
<a href="{{ item.url }}">{{ item.text }}</a><span><i class="icon-angle-right"></i></span> |
||||
{% else %} |
||||
{{ item.text }} |
||||
{% endif %} |
||||
</li> |
||||
{% endfor %} |
||||
</ol> |
||||
</nav> |
||||
{% endif %} |
@ -0,0 +1,57 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a set of links. |
||||
* |
||||
* Available variables: |
||||
* - attributes: Attributes for the UL containing the list of links. |
||||
* - links: Links to be output. |
||||
* Each link will have the following elements: |
||||
* - title: The link text. |
||||
* - href: The link URL. If omitted, the 'title' is shown as a plain text |
||||
* item in the links list. If 'href' is supplied, the entire link is passed |
||||
* to l() as its $options parameter. |
||||
* - attributes: (optional) HTML attributes for the anchor, or for the <span> |
||||
* tag if no 'href' is supplied. |
||||
* - heading: (optional) A heading to precede the links. |
||||
* - text: The heading text. |
||||
* - level: The heading level (e.g. 'h2', 'h3'). |
||||
* - attributes: (optional) A keyed list of attributes for the heading. |
||||
* If the heading is a string, it will be used as the text of the heading and |
||||
* the level will default to 'h2'. |
||||
* |
||||
* Headings should be used on navigation menus and any list of links that |
||||
* consistently appears on multiple pages. To make the heading invisible use |
||||
* the 'visually-hidden' CSS class. Do not use 'display:none', which |
||||
* removes it from screen readers and assistive technology. Headings allow |
||||
* screen reader and keyboard only users to navigate to or skip the links. |
||||
* See http://juicystudio.com/article/screen-readers-display-none.php and |
||||
* http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. |
||||
* |
||||
* @see template_preprocess_links() |
||||
*/ |
||||
#} |
||||
{% if links -%} |
||||
<div class="node-links-container"> |
||||
{%- if heading -%} |
||||
{%- if heading.level -%} |
||||
<{{ heading.level }}{{ heading.attributes }}>{{ heading.text }}</{{ heading.level }}> |
||||
{%- else -%} |
||||
<h2{{ heading.attributes }}>{{ heading.text }}</h2> |
||||
{%- endif -%} |
||||
{%- endif -%} |
||||
<ul{{ attributes }}> |
||||
{%- for item in links -%} |
||||
<li{{ item.attributes }}> |
||||
{%- if item.link -%} |
||||
{{ item.link }} |
||||
{%- elseif item.text_attributes -%} |
||||
<span{{ item.text_attributes }}>{{ item.text }}</span> |
||||
{%- else -%} |
||||
{{ item.text }} |
||||
{%- endif -%} |
||||
</li> |
||||
{%- endfor -%} |
||||
</ul> |
||||
</div> <!--/.node-links-container --> |
||||
{%- endif %} |
@ -0,0 +1,17 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override for a local task link. |
||||
* |
||||
* Available variables: |
||||
* - attributes: HTML attributes for the wrapper element. |
||||
* - is_active: Whether the task item is an active tab. |
||||
* - link: A rendered link element. |
||||
* |
||||
* Note: This template renders the content for each task item in |
||||
* menu-local-tasks.html.twig. |
||||
* |
||||
* @see template_preprocess_menu_local_task() |
||||
*/ |
||||
#} |
||||
<li{{ attributes.addClass(is_active ? 'active-page-tab') }}>{{ link }}</li> |
@ -0,0 +1,21 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override to display primary and secondary local tasks. |
||||
* |
||||
* Available variables: |
||||
* - primary: HTML list items representing primary tasks. |
||||
* - secondary: HTML list items representing primary tasks. |
||||
* |
||||
* Each item in these variables (primary and secondary) can be individually |
||||
* themed in menu-local-task.html.twig. |
||||
*/ |
||||
#} |
||||
{% if primary %} |
||||
<h2 class="visually-hidden">{{ 'Primary tabs'|t }}</h2> |
||||
<ul class="page-tabs primary-tab">{{ primary }}</ul> |
||||
{% endif %} |
||||
{% if secondary %} |
||||
<h2 class="visually-hidden">{{ 'Secondary tabs'|t }}</h2> |
||||
<ul class="page-tabs secondary-tab">{{ secondary }}</ul> |
||||
{% endif %} |
@ -0,0 +1,57 @@
|
||||
{# |
||||
/** |
||||
* @file |
||||
* Theme override to display main menu. |
||||
* |
||||
* Available variables: |
||||
* - menu_name: The machine name of the menu. |
||||
* - items: A nested list of menu items. Each menu item contains: |
||||
* - attributes: HTML attributes for the menu item. |
||||
* - below: The menu item child items. |
||||
* - title: The menu link title. |
||||
* - url: The menu link url, instance of \Drupal\Core\Url |
||||
* - localized_options: Menu link localized options. |
||||
* - is_expanded: TRUE if the link has visible children within the current |
||||
* menu tree. |
||||
* - is_collapsed: TRUE if the link has children within the current menu tree |
||||
* that are not currently visible. |
||||
* - in_active_trail: TRUE if the link is in the active trail. |
||||
*/ |
||||
#} |
||||
{% import _self as menus %} |
||||
|
||||
{# |
||||
We call a macro which calls itself to render the full tree. |
||||
@see http://twig.sensiolabs.org/doc/tags/macro.html |
||||
#} |
||||
{{ menus.menu_links(items, attributes, 0) }} |
||||
|
||||
{% macro menu_links(items, attributes, menu_level) %} |
||||
{% import _self as menus %} |
||||
{% if items %} |
||||
{% if menu_level == 0 %} |
||||
<ul{{ attributes.addClass('menu') }}> |
||||
{% else %} |
||||
<ul class="submenu"> |
||||
{% endif %} |
||||
{% for item in items %} |
||||
{% |
||||
set item_classes = [ |
||||
'menu-item', |
||||
'menu-item-level-' ~ (menu_level + 1), |
||||
item.is_expanded ? 'expanded', |
||||
item.is_collapsed ? 'collapsed', |
||||
item.below ? 'menu-item-has-children', |
||||
item.in_active_trail ? 'active', |
||||
] |
||||
%} |
||||
<li{{ item.attributes.addClass(item_classes) }}> |
||||
{{ link(item.title, item.url) }} |
||||
{% if item.below %} |
||||
{{ menus.menu_links(item.below, attributes, menu_level + 1) }} |
||||
{% endif %} |
||||
</li> |
||||
{% endfor %} |
||||
</ul> |
||||
{% endif %} |
||||
{% endmacro %} |
@ -0,0 +1 @@
|
||||
<div class="scrolltop"><i class="icon-arrow-up"></i></div> |
@ -0,0 +1,3 @@
|
||||
<div class="content-bottom"> |
||||
{{ page.content_bottom }} |
||||
</div><!--/.content bottom --> |
@ -0,0 +1,3 @@
|
||||
<div class="homepage-content homepage-content-bottom"> |
||||
{{ page.content_home_bottom }} |
||||
</div><!--/.homepage-content --> |
@ -0,0 +1,3 @@
|
||||
<div class="homepage-content homepage-content-top"> |
||||
{{ page.content_home_top }} |
||||
</div><!--/.homepage-content --> |
@ -0,0 +1,3 @@
|
||||
<div class="content-top"> |
||||
{{ page.content_top }} |
||||
</div><!--/.content top --> |
@ -0,0 +1,26 @@
|
||||
<footer class="footer-blocks footer"> |
||||
<div class="container"> |
||||
<div class="footer-blocks-container"> |
||||
{% if page.footer_one %} |
||||
<div class="footer-block footer-one"> |
||||
{{ page.footer_one }} |
||||
</div> |
||||
{% endif %} |
||||
{% if page.footer_two %} |
||||
<div class="footer-block footer-two"> |
||||
{{ page.footer_two }} |
||||
</div> |
||||
{% endif %} |
||||
{% if page.footer_three %} |
||||
<div class="footer-block footer-three"> |
||||
{{ page.footer_three }} |
||||
</div> |
||||
{% endif %} |
||||
{% if page.footer_four %} |
||||
<div class="footer-block footer-four"> |
||||
{{ page.footer_four }} |
||||
</div> |
||||
{% endif %} |
||||
</div><!-- /footer-top-container --> |
||||
</div><!-- /container --> |
||||
</footer><!-- /footer-top --> |
@ -0,0 +1,16 @@
|
||||
<footer class="footer-bottom-blocks footer"> |
||||
<div class="container"> |
||||
<div class="footer-bottom-blocks-container"> |
||||
{% if page.footer_bottom_left %} |
||||
<div class="footer-bottom-block footer-bottom-block-left"> |
||||
{{ page.footer_bottom_left }} |
||||
</div> |
||||
{% endif %} |
||||
{% if page.footer_bottom_right %} |
||||
<div class="footer-bottom-block footer-bottom-block-right"> |
||||
{{ page.footer_bottom_right }} |
||||
</div> |
||||
{% endif %} |
||||
</div><!-- /footer-bottom-blocks-container --> |
||||
</div><!-- /container --> |
||||
</footer><!-- /footer-bottom-blocks --> |
@ -0,0 +1,5 @@
|
||||
{% if page.footer_bottom_last %} |
||||
<div class="footer-bottom-last"> |
||||
{{ page.footer_bottom_last }} |
||||
</div><!-- /footer-bottom-last --> |
||||
{% endif %} |
@ -0,0 +1,14 @@
|
||||
<footer class="footer-bottom footer"> |
||||
<div class="container"> |
||||
<div class="footer-bottom-container"> |
||||
<div class="website-copyright"> |
||||
© {{ "now"|date("Y") }} {{ site_name }}, All rights reserved. |
||||
</div> |
||||
{% if page.footer_bottom_last %} |
||||
<div class="footer-bottom-last"> |
||||
{{ page.footer_bottom_last }} |
||||
</div><!-- /footer-bottom-last --> |
||||
{% endif %} |
||||
</div><!-- /footer-bottom-container --> |
||||
</div><!-- /container --> |
||||
</footer><!-- /footer-bottom --> |
@ -0,0 +1,3 @@
|
||||
<div class="website-copyright"> |
||||
© {{ "now"|date("Y") }} {{ site_name }}, All rights reserved. |
||||
</div> |
@ -0,0 +1,7 @@
|
||||
<footer class="footer-top footer"> |
||||
<div class="container"> |
||||
<div class="footer-top-container"> |
||||
{{ page.footer_top }} |
||||
</div><!-- /footer-top-container --> |
||||
</div><!-- /container --> |
||||
</footer><!-- /footer-top --> |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue