Just commit all of family home before editing 'cause i just accidentally overwrote gaeastohuaosneuh
This commit is contained in:
parent
18bba535b4
commit
84de7930cb
64 changed files with 15325 additions and 0 deletions
web/themes/custom/geofresco
.gitignore.nvmrcLICENSE.txtREADME.mdcompile
config
install
optional
block.block.family_home_account_menu.ymlblock.block.family_home_branding.ymlblock.block.family_home_content.ymlblock.block.family_home_help.ymlblock.block.family_home_local_tasks.ymlblock.block.family_home_main_menu.ymlblock.block.family_home_messages.ymlblock.block.family_home_page_title.yml
schema
dist/css
family_home.themefavicon-code.txtfavicon.icofonts
GUST e-foundry License.txtREADME.mdtexgyrepagella-bold-webfont.eottexgyrepagella-bold-webfont.svgtexgyrepagella-bold-webfont.ttftexgyrepagella-bold-webfont.wofftexgyrepagella-bolditalic-webfont.eottexgyrepagella-bolditalic-webfont.svgtexgyrepagella-bolditalic-webfont.ttftexgyrepagella-bolditalic-webfont.wofftexgyrepagella-italic-webfont.eottexgyrepagella-italic-webfont.svgtexgyrepagella-italic-webfont.ttftexgyrepagella-italic-webfont.wofftexgyrepagella-regular-webfont.eottexgyrepagella-regular-webfont.svgtexgyrepagella-regular-webfont.ttftexgyrepagella-regular-webfont.woff
geofresco.info.ymlgulp-tasks
gulpfile.jsimages
package.jsonsrc
14
web/themes/custom/geofresco/.gitignore
vendored
Normal file
14
web/themes/custom/geofresco/.gitignore
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Ignore the node modules folder (created by 'npm install').
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# We absolutely don't want to have the .sass-cache in git.
|
||||||
|
.sass-cache
|
||||||
|
|
||||||
|
# Ignore any errors thrown by npm.
|
||||||
|
npm-debug.log
|
||||||
|
|
||||||
|
# Ignore any map files. These don't need to be committed.
|
||||||
|
*.map
|
||||||
|
|
||||||
|
# Ignore the package lock file.
|
||||||
|
package-lock.json
|
1
web/themes/custom/geofresco/.nvmrc
Normal file
1
web/themes/custom/geofresco/.nvmrc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
v8.4.0
|
339
web/themes/custom/geofresco/LICENSE.txt
Normal file
339
web/themes/custom/geofresco/LICENSE.txt
Normal file
|
@ -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.
|
71
web/themes/custom/geofresco/README.md
Normal file
71
web/themes/custom/geofresco/README.md
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
# Family & Home Theme
|
||||||
|
Family & Home is a subtheme of Octavia, which is a subtheme
|
||||||
|
of base theme Bulma for Drupal.
|
||||||
|
It has Bulma CSS framework, Sass, and Font Awesome built in.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### Browser Support
|
||||||
|
Autoprefixer & Babel is set to support:
|
||||||
|
|
||||||
|
* IE >= 9
|
||||||
|
* Last 3 versions of modern browsers.
|
||||||
|
|
||||||
|
These can be updated at any time within the `package.json`.
|
||||||
|
|
||||||
|
### Run the following commands from the theme directory
|
||||||
|
If you haven't yet, install nvm:
|
||||||
|
https://github.com/creationix/nvm
|
||||||
|
|
||||||
|
#### Use the right version of node with:
|
||||||
|
`nvm use`
|
||||||
|
|
||||||
|
_This command will look at your `.nvmrc` file and use the version node.js specified in it. This ensures all developers use the same version of node for consistency._
|
||||||
|
|
||||||
|
#### If that version of node isn't installed, install it with:
|
||||||
|
`nvm install`
|
||||||
|
|
||||||
|
#### Install npm dependencies with
|
||||||
|
`npm install`
|
||||||
|
|
||||||
|
_This command looks at `package.json` and installs all the npm dependencies specified in it. Some of the dependencies include gulp, autoprefixer, gulp-sass and others._
|
||||||
|
|
||||||
|
#### Gulp tasks
|
||||||
|
|
||||||
|
Provided by default are seven npm scripts that point to Gulp tasks. We run gulp through npm scripts so the build tools can change without the user ever knowing.
|
||||||
|
|
||||||
|
1. Run the default build task (gulp in this instance) and everything in it.
|
||||||
|
This is the equivalent to running `gulp` on the command line with Gulp installed globally.
|
||||||
|
```
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Compile Sass and JS.
|
||||||
|
```
|
||||||
|
npm run compile
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Watch files and run tasks when they change.
|
||||||
|
```
|
||||||
|
npm run watch
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Compress png and svg assets.
|
||||||
|
```
|
||||||
|
npm run compress
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Build the KSS Style guide.
|
||||||
|
```
|
||||||
|
npm run styleguide
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Lint Sass and JS files.
|
||||||
|
```
|
||||||
|
npm run lint
|
||||||
|
```
|
||||||
|
|
||||||
|
7. Delete compiled Sass, JS and style guide files from the /dist directory.
|
||||||
|
```
|
||||||
|
npm run clean
|
||||||
|
```
|
1
web/themes/custom/geofresco/compile
Symbolic link
1
web/themes/custom/geofresco/compile
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
./node_modules/gulp/bin/gulp.js
|
|
@ -0,0 +1,44 @@
|
||||||
|
general:
|
||||||
|
block: 0
|
||||||
|
icon: 1
|
||||||
|
icon_type: 1
|
||||||
|
menu: main
|
||||||
|
button:
|
||||||
|
colorize: 1
|
||||||
|
size: '0'
|
||||||
|
outlined: 0
|
||||||
|
inverted: 0
|
||||||
|
elements:
|
||||||
|
labels_inline: 0
|
||||||
|
input_size: '0'
|
||||||
|
labels_rounded: 0
|
||||||
|
labels_color: '0'
|
||||||
|
labels_size: '0'
|
||||||
|
breadcrumb:
|
||||||
|
position: '0'
|
||||||
|
size: '0'
|
||||||
|
separator: '0'
|
||||||
|
tabs:
|
||||||
|
position: '0'
|
||||||
|
size: '0'
|
||||||
|
style: is-boxed
|
||||||
|
fullwidth: 0
|
||||||
|
table:
|
||||||
|
bordered: 0
|
||||||
|
striped: 0
|
||||||
|
narrow: 0
|
||||||
|
cdn:
|
||||||
|
bulma:
|
||||||
|
version: 0.5.3
|
||||||
|
bulmaswatch:
|
||||||
|
version: 0.5.1
|
||||||
|
theme: default
|
||||||
|
features:
|
||||||
|
node_user_picture: true
|
||||||
|
comment_user_picture: true
|
||||||
|
comment_user_verification: true
|
||||||
|
favicon: true
|
||||||
|
logo:
|
||||||
|
use_default: true
|
||||||
|
favicon:
|
||||||
|
use_default: true
|
|
@ -0,0 +1,23 @@
|
||||||
|
langcode: en
|
||||||
|
status: true
|
||||||
|
dependencies:
|
||||||
|
config:
|
||||||
|
- system.menu.account
|
||||||
|
module:
|
||||||
|
- system
|
||||||
|
theme:
|
||||||
|
- family_home
|
||||||
|
id: family_home_account_menu
|
||||||
|
theme: family_home
|
||||||
|
region: footer
|
||||||
|
weight: 0
|
||||||
|
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
|
||||||
|
visibility: { }
|
|
@ -0,0 +1,22 @@
|
||||||
|
langcode: en
|
||||||
|
status: true
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- system
|
||||||
|
theme:
|
||||||
|
- family_home
|
||||||
|
id: family_home_branding
|
||||||
|
theme: family_home
|
||||||
|
region: navbar_branding
|
||||||
|
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:
|
||||||
|
- family_home
|
||||||
|
id: family_home_content
|
||||||
|
theme: family_home
|
||||||
|
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,19 @@
|
||||||
|
langcode: en
|
||||||
|
status: true
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- help
|
||||||
|
theme:
|
||||||
|
- family_home
|
||||||
|
id: family_home_help
|
||||||
|
theme: family_home
|
||||||
|
region: help
|
||||||
|
weight: -30
|
||||||
|
provider: null
|
||||||
|
plugin: help_block
|
||||||
|
settings:
|
||||||
|
id: help_block
|
||||||
|
label: Help
|
||||||
|
provider: help
|
||||||
|
label_display: '0'
|
||||||
|
visibility: { }
|
|
@ -0,0 +1,19 @@
|
||||||
|
langcode: en
|
||||||
|
status: true
|
||||||
|
dependencies:
|
||||||
|
theme:
|
||||||
|
- family_home
|
||||||
|
id: family_home_local_tasks
|
||||||
|
theme: family_home
|
||||||
|
region: header_tabs
|
||||||
|
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,23 @@
|
||||||
|
langcode: en
|
||||||
|
status: true
|
||||||
|
dependencies:
|
||||||
|
config:
|
||||||
|
- system.menu.main
|
||||||
|
module:
|
||||||
|
- system
|
||||||
|
theme:
|
||||||
|
- family_home
|
||||||
|
id: family_home_main_menu
|
||||||
|
theme: family_home
|
||||||
|
region: primary_menu
|
||||||
|
weight: 1
|
||||||
|
provider: null
|
||||||
|
plugin: 'system_menu_block:main'
|
||||||
|
settings:
|
||||||
|
id: 'system_menu_block:main'
|
||||||
|
label: 'Main navigation'
|
||||||
|
provider: system
|
||||||
|
label_display: '0'
|
||||||
|
level: 1
|
||||||
|
depth: 2
|
||||||
|
visibility: { }
|
|
@ -0,0 +1,19 @@
|
||||||
|
langcode: en
|
||||||
|
status: true
|
||||||
|
dependencies:
|
||||||
|
module:
|
||||||
|
- system
|
||||||
|
theme:
|
||||||
|
- family_home
|
||||||
|
id: family_home_messages
|
||||||
|
theme: family_home
|
||||||
|
region: help
|
||||||
|
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:
|
||||||
|
- family_home
|
||||||
|
id: family_home_page_title
|
||||||
|
theme: family_home
|
||||||
|
region: header
|
||||||
|
weight: 0
|
||||||
|
provider: null
|
||||||
|
plugin: page_title_block
|
||||||
|
settings:
|
||||||
|
id: page_title_block
|
||||||
|
label: 'Page title'
|
||||||
|
provider: core
|
||||||
|
label_display: '0'
|
||||||
|
visibility: { }
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Schema for the configuration files of the Bulma theme.
|
||||||
|
|
||||||
|
family_home.settings:
|
||||||
|
type: theme_settings
|
||||||
|
label: 'Bulma settings'
|
8132
web/themes/custom/geofresco/dist/css/global.css
vendored
Normal file
8132
web/themes/custom/geofresco/dist/css/global.css
vendored
Normal file
File diff suppressed because it is too large
Load diff
5
web/themes/custom/geofresco/dist/css/overrides.css
vendored
Normal file
5
web/themes/custom/geofresco/dist/css/overrides.css
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
.navbar > .container > .navbar-brand {
|
||||||
|
margin-left: inherit; }
|
||||||
|
|
||||||
|
.section {
|
||||||
|
padding-top: 1.5rem; }
|
33
web/themes/custom/geofresco/family_home.theme
Normal file
33
web/themes/custom/geofresco/family_home.theme
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements hook_preprocess_HOOK() for page templates.
|
||||||
|
*
|
||||||
|
* Provide the elements of the branding block in the page.
|
||||||
|
*/
|
||||||
|
function family_home_preprocess_page(&$variables) {
|
||||||
|
$block_manager = \Drupal::service('plugin.manager.block');
|
||||||
|
$branding = $block_manager->createInstance('system_branding_block', [])->build();
|
||||||
|
$variables['site_logo'] = $branding['site_logo']['#uri'];
|
||||||
|
$variables['site_slogan'] = $branding['site_slogan'];
|
||||||
|
$variables['site_name'] = $branding['site_name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Below workaround to prevent upscaling of responsive images taken from
|
||||||
|
// https://drupal.stackexchange.com/questions/254109/how-to-add-a-width-attribute-to-a-responsive-image-with-srcset
|
||||||
|
// see https://www.drupal.org/project/drupal/issues/2999960
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements hook_preprocess_responsive_image_formatter().
|
||||||
|
*
|
||||||
|
* In order to do an incredibly ugly hack to prevent responsive images from
|
||||||
|
* upscaling themselves.
|
||||||
|
*/
|
||||||
|
function family_home_preprocess_responsive_image_formatter(array &$variables) {
|
||||||
|
$width = $variables['item']->width;
|
||||||
|
if ($width > 1199) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$variables['responsive_image']['#attributes']['style'] = 'width: ' . $width . 'px';
|
||||||
|
}
|
7
web/themes/custom/geofresco/favicon-code.txt
Normal file
7
web/themes/custom/geofresco/favicon-code.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<link rel="icon" type="image/png" href="favicon-32x32.png" sizes="32x32" />
|
||||||
|
<link rel="icon" type="image/png" href="favicon-16x16.png" sizes="16x16" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
Via http://www.favicomatic.com/
|
BIN
web/themes/custom/geofresco/favicon.ico
Normal file
BIN
web/themes/custom/geofresco/favicon.ico
Normal file
Binary file not shown.
After Width: 16px | Height: 16px | Size: 894 B |
29
web/themes/custom/geofresco/fonts/GUST e-foundry License.txt
Normal file
29
web/themes/custom/geofresco/fonts/GUST e-foundry License.txt
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
This is a preliminary version (2006-09-30), barring acceptance from
|
||||||
|
the LaTeX Project Team and other feedback, of the GUST Font License.
|
||||||
|
(GUST is the Polish TeX Users Group, http://www.gust.org.pl)
|
||||||
|
|
||||||
|
For the most recent version of this license see
|
||||||
|
http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt
|
||||||
|
or
|
||||||
|
http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt
|
||||||
|
|
||||||
|
This work may be distributed and/or modified under the conditions
|
||||||
|
of the LaTeX Project Public License, either version 1.3c of this
|
||||||
|
license or (at your option) any later version.
|
||||||
|
|
||||||
|
Please also observe the following clause:
|
||||||
|
1) it is requested, but not legally required, that derived works be
|
||||||
|
distributed only after changing the names of the fonts comprising this
|
||||||
|
work and given in an accompanying "manifest", and that the
|
||||||
|
files comprising the Work, as listed in the manifest, also be given
|
||||||
|
new names. Any exceptions to this request are also given in the
|
||||||
|
manifest.
|
||||||
|
|
||||||
|
We recommend the manifest be given in a separate file named
|
||||||
|
MANIFEST-<fontid>.txt, where <fontid> is some unique identification
|
||||||
|
of the font family. If a separate "readme" file accompanies the Work,
|
||||||
|
we recommend a name of the form README-<fontid>.txt.
|
||||||
|
|
||||||
|
The latest version of the LaTeX Project Public License is in
|
||||||
|
http://www.latex-project.org/lppl.txt and version 1.3c or later
|
||||||
|
is part of all distributions of LaTeX version 2006/05/20 or later.
|
21
web/themes/custom/geofresco/fonts/README.md
Normal file
21
web/themes/custom/geofresco/fonts/README.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# Fonts
|
||||||
|
|
||||||
|
See `family_home/src/global/_fonts.scss`
|
||||||
|
|
||||||
|
TODO consider citing *only* woff especially if there's a risk some browser might load more than one, or one less preferred than woff.
|
||||||
|
|
||||||
|
Agaric is including these custom fonts in the same way as we are for MassDesignGroup.org
|
||||||
|
|
||||||
|
It's working well on a site that cares about performance (aided by Cloudflare)
|
||||||
|
but we will repeat Todd Linkner's note:
|
||||||
|
|
||||||
|
> You may want to use Google Fontloader or another method
|
||||||
|
> to improve performance and mitigate FOUT.
|
||||||
|
|
||||||
|
## Font sources
|
||||||
|
|
||||||
|
### Tex Gyre Pagella
|
||||||
|
|
||||||
|
https://www.fontsquirrel.com/fonts/TeX-Gyre-Pagella
|
||||||
|
|
||||||
|
[GUST e-foundry License.txt](GUST e-foundry License.txt)
|
Binary file not shown.
1446
web/themes/custom/geofresco/fonts/texgyrepagella-bold-webfont.svg
Normal file
1446
web/themes/custom/geofresco/fonts/texgyrepagella-bold-webfont.svg
Normal file
File diff suppressed because it is too large
Load diff
After (image error) Size: 127 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
After (image error) Size: 127 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
1462
web/themes/custom/geofresco/fonts/texgyrepagella-italic-webfont.svg
Normal file
1462
web/themes/custom/geofresco/fonts/texgyrepagella-italic-webfont.svg
Normal file
File diff suppressed because it is too large
Load diff
After (image error) Size: 133 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
1505
web/themes/custom/geofresco/fonts/texgyrepagella-regular-webfont.svg
Normal file
1505
web/themes/custom/geofresco/fonts/texgyrepagella-regular-webfont.svg
Normal file
File diff suppressed because it is too large
Load diff
After (image error) Size: 127 KiB |
Binary file not shown.
Binary file not shown.
6
web/themes/custom/geofresco/geofresco.info.yml
Normal file
6
web/themes/custom/geofresco/geofresco.info.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
global:
|
||||||
|
dependencies:
|
||||||
|
- octavia/global
|
||||||
|
css:
|
||||||
|
theme:
|
||||||
|
dist/css/overrides.css: {}
|
33
web/themes/custom/geofresco/gulp-tasks/clean.js
Normal file
33
web/themes/custom/geofresco/gulp-tasks/clean.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var del = require('del');
|
||||||
|
|
||||||
|
// Export our tasks.
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// Clean style guide files.
|
||||||
|
styleguide: function() {
|
||||||
|
// You can use multiple globbing patterns as you would with `gulp.src`
|
||||||
|
return del([
|
||||||
|
'./dist/style-guide/*'
|
||||||
|
], {force: true});
|
||||||
|
},
|
||||||
|
|
||||||
|
// Clean CSS files.
|
||||||
|
css: function() {
|
||||||
|
return del([
|
||||||
|
'./dist/css/*'
|
||||||
|
], {force: true});
|
||||||
|
},
|
||||||
|
|
||||||
|
// Clean JS files.
|
||||||
|
js: function() {
|
||||||
|
return del([
|
||||||
|
'./dist/js/*'
|
||||||
|
], {force: true});
|
||||||
|
}
|
||||||
|
};
|
70
web/themes/custom/geofresco/gulp-tasks/compile.js
Normal file
70
web/themes/custom/geofresco/gulp-tasks/compile.js
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include gulp
|
||||||
|
//=======================================================
|
||||||
|
var gulp = require('gulp');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var sass = require('gulp-sass');
|
||||||
|
var prefix = require('gulp-autoprefixer');
|
||||||
|
var sourcemaps = require('gulp-sourcemaps');
|
||||||
|
var sync = require('browser-sync');
|
||||||
|
var babel = require('gulp-babel');
|
||||||
|
var rename = require('gulp-rename');
|
||||||
|
|
||||||
|
// Small error handler helper function.
|
||||||
|
function handleError(err) {
|
||||||
|
console.log(err.toString());
|
||||||
|
this.emit('end');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Export our tasks.
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// Compile Sass.
|
||||||
|
sass: function() {
|
||||||
|
return gulp.src('./src/{global,layout,components}/**/*.scss')
|
||||||
|
.pipe(
|
||||||
|
sass({ outputStyle: 'nested' })
|
||||||
|
.on('error', handleError)
|
||||||
|
)
|
||||||
|
.pipe(prefix({
|
||||||
|
cascade: false
|
||||||
|
}))
|
||||||
|
.pipe(rename(function (path) {
|
||||||
|
path.dirname = '';
|
||||||
|
return path;
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('./dist/css'))
|
||||||
|
.pipe(sync.stream({match: '**/*.css'}));
|
||||||
|
},
|
||||||
|
|
||||||
|
// Compile JavaScript.
|
||||||
|
js: function() {
|
||||||
|
return gulp.src([
|
||||||
|
'./src/{global,layout,components}/**/*.es6.js'
|
||||||
|
], { base: './' })
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(
|
||||||
|
babel()
|
||||||
|
.on('error', handleError)
|
||||||
|
)
|
||||||
|
.pipe(rename(function (path) {
|
||||||
|
// Currently not using ES6 modules so for now
|
||||||
|
// es6 files are compiled into individual JS files.
|
||||||
|
// Eventually this can use ES6 Modules and compile
|
||||||
|
// all files within a component directory into a single
|
||||||
|
// foo.bundle.js file. In that case the bundle name should
|
||||||
|
// reflect the components directory name.
|
||||||
|
path.dirname = '';
|
||||||
|
path.basename = path.basename.replace(/\.es6/, '');
|
||||||
|
return path;
|
||||||
|
}))
|
||||||
|
.pipe(sourcemaps.write('./'))
|
||||||
|
.pipe(gulp.dest('./dist/js'));
|
||||||
|
}
|
||||||
|
};
|
35
web/themes/custom/geofresco/gulp-tasks/compress.js
Normal file
35
web/themes/custom/geofresco/gulp-tasks/compress.js
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include gulp
|
||||||
|
//=======================================================
|
||||||
|
var gulp = require('gulp');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var rename = require('gulp-rename');
|
||||||
|
var imagemin = require('gulp-imagemin');
|
||||||
|
|
||||||
|
// Export our tasks.
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// Compress svg/png/jpg files.
|
||||||
|
assets: function() {
|
||||||
|
return gulp.src([
|
||||||
|
'./src/{global,layout,components}/**/*{.png,.jpg,.svg}'
|
||||||
|
])
|
||||||
|
.pipe(imagemin({
|
||||||
|
progressive: true,
|
||||||
|
svgoPlugins: [{
|
||||||
|
removeViewBox: false
|
||||||
|
}]
|
||||||
|
}))
|
||||||
|
.pipe(rename(function (path) {
|
||||||
|
path.dirname = '';
|
||||||
|
return path;
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('./dist/assets'));
|
||||||
|
}
|
||||||
|
};
|
42
web/themes/custom/geofresco/gulp-tasks/concat.js
Normal file
42
web/themes/custom/geofresco/gulp-tasks/concat.js
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include gulp
|
||||||
|
//=======================================================
|
||||||
|
var gulp = require('gulp');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var concat = require('gulp-concat');
|
||||||
|
var order = require('gulp-order');
|
||||||
|
var sync = require('browser-sync');
|
||||||
|
|
||||||
|
// Export our tasks.
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// Concat all CSS into a master bundle.
|
||||||
|
css: function() {
|
||||||
|
return gulp.src([
|
||||||
|
'./dist/css/*.css'
|
||||||
|
])
|
||||||
|
// Reorder the files so global is first.
|
||||||
|
// If you need to get fancier with the order here's an example:
|
||||||
|
// .pipe(order([
|
||||||
|
// 'dist/css/global.css',
|
||||||
|
// 'src/components/**/*.css',
|
||||||
|
// 'dist/css/btn.css',
|
||||||
|
// 'dist/css/form-item.css',
|
||||||
|
// 'dist/css/form-float-label.css',
|
||||||
|
// 'dist/css/*.css'
|
||||||
|
// ], { base: './' }))
|
||||||
|
.pipe(order([
|
||||||
|
'dist/css/global.css',
|
||||||
|
'dist/css/*.css'
|
||||||
|
], { base: './' }))
|
||||||
|
.pipe(concat('all.css'))
|
||||||
|
.pipe(gulp.dest('./dist/all'))
|
||||||
|
.pipe(sync.stream());
|
||||||
|
}
|
||||||
|
};
|
36
web/themes/custom/geofresco/gulp-tasks/lint.js
Normal file
36
web/themes/custom/geofresco/gulp-tasks/lint.js
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include gulp
|
||||||
|
//=======================================================
|
||||||
|
var gulp = require('gulp');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var sassLint = require('gulp-sass-lint');
|
||||||
|
var eslint = require('gulp-eslint');
|
||||||
|
|
||||||
|
// Export our tasks.
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// Lint Sass based on .sass-lint.yml config.
|
||||||
|
sass: function() {
|
||||||
|
return gulp.src([
|
||||||
|
'./src/{global,layout,components}/**/*.scss',
|
||||||
|
])
|
||||||
|
.pipe(sassLint())
|
||||||
|
.pipe(sassLint.format());
|
||||||
|
},
|
||||||
|
|
||||||
|
// Lint JavaScript based on .eslintrc config.
|
||||||
|
js: function() {
|
||||||
|
return gulp.src([
|
||||||
|
'./src/{global,layout,components}/**/*.js',
|
||||||
|
'!./src/components/**/vendors/*'
|
||||||
|
])
|
||||||
|
.pipe(eslint())
|
||||||
|
.pipe(eslint.format());
|
||||||
|
}
|
||||||
|
};
|
33
web/themes/custom/geofresco/gulp-tasks/move.js
Normal file
33
web/themes/custom/geofresco/gulp-tasks/move.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// If some JS components aren't es6 we want to simply move them
|
||||||
|
// into the dist folder. This allows us to clean the dist/js
|
||||||
|
// folder on build.
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include gulp
|
||||||
|
//=======================================================
|
||||||
|
var gulp = require('gulp');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var rename = require('gulp-rename');
|
||||||
|
|
||||||
|
// Export our tasks.
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// Moves JavaScript.
|
||||||
|
js: function() {
|
||||||
|
return gulp.src([
|
||||||
|
'./src/{global,layout,components}/**/*.js',
|
||||||
|
'!./src/{global,layout,components}/**/*.es6.js'
|
||||||
|
], { base: './' })
|
||||||
|
.pipe(rename(function (path) {
|
||||||
|
path.dirname = '';
|
||||||
|
return path;
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('./dist/js'));
|
||||||
|
}
|
||||||
|
};
|
48
web/themes/custom/geofresco/gulp-tasks/styleguide.js
Normal file
48
web/themes/custom/geofresco/gulp-tasks/styleguide.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include kss
|
||||||
|
//=======================================================
|
||||||
|
var kss = require('kss');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
|
// Export our tasks.
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// Generate the style guide using the top level
|
||||||
|
// directory name passed in as a parameter.
|
||||||
|
generate: function(dirname) {
|
||||||
|
|
||||||
|
return kss({
|
||||||
|
source: [
|
||||||
|
dirname + '/src/global',
|
||||||
|
dirname + '/src/components',
|
||||||
|
dirname + '/src/layout'
|
||||||
|
],
|
||||||
|
destination: dirname + '/dist/style-guide',
|
||||||
|
builder: dirname + '/src/style-guide/builder',
|
||||||
|
namespace: 'octavia:' + dirname + '/src/components/',
|
||||||
|
'extend-drupal8': true,
|
||||||
|
// The css and js paths are URLs, like '/misc/jquery.js'.
|
||||||
|
// The following paths are relative to the generated style guide.
|
||||||
|
// The all.css file is for the style guide ONLY so you don't have to
|
||||||
|
// keep adding the file here everytime you add a new component.
|
||||||
|
// Drupal libraries should be leveraged for adding CSS per component.
|
||||||
|
css: [
|
||||||
|
path.relative(
|
||||||
|
dirname + '/style-guide/',
|
||||||
|
dirname + '/all/all.css'
|
||||||
|
)
|
||||||
|
],
|
||||||
|
js: [
|
||||||
|
],
|
||||||
|
homepage: 'style-guide.md',
|
||||||
|
title: 'Style Guide'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
176
web/themes/custom/geofresco/gulpfile.js
Normal file
176
web/themes/custom/geofresco/gulpfile.js
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
/*eslint strict: ["error", "global"]*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include gulp
|
||||||
|
//=======================================================
|
||||||
|
var gulp = require('gulp');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our Plugins
|
||||||
|
//=======================================================
|
||||||
|
var sync = require('browser-sync');
|
||||||
|
var runSequence = require('run-sequence');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Include Our tasks.
|
||||||
|
//
|
||||||
|
// Each task is broken apart to it's own node module.
|
||||||
|
// Check out the ./gulp-tasks directory for more.
|
||||||
|
//=======================================================
|
||||||
|
var taskCompile = require('./gulp-tasks/compile.js');
|
||||||
|
var taskMove = require('./gulp-tasks/move.js');
|
||||||
|
var taskLint = require('./gulp-tasks/lint.js');
|
||||||
|
var taskCompress = require('./gulp-tasks/compress.js');
|
||||||
|
var taskClean = require('./gulp-tasks/clean.js');
|
||||||
|
|
||||||
|
var taskStyleGuide = require('./gulp-tasks/styleguide.js');
|
||||||
|
var taskConcat = require('./gulp-tasks/concat.js');
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Compile Our Sass and JS
|
||||||
|
// We also move some files if they don't need
|
||||||
|
// to be compiled.
|
||||||
|
//=======================================================
|
||||||
|
gulp.task('compile', ['compile:sass', 'compile:js', 'move:js']);
|
||||||
|
|
||||||
|
// Compile Sass
|
||||||
|
gulp.task('compile:sass', function() {
|
||||||
|
return taskCompile.sass();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Compile JavaScript ES2015 to ES5.
|
||||||
|
gulp.task('compile:js', function() {
|
||||||
|
return taskCompile.js();
|
||||||
|
});
|
||||||
|
|
||||||
|
// If some JS components aren't es6 we want to simply move them
|
||||||
|
// into the dist folder. This allows us to clean the dist/js
|
||||||
|
// folder on build.
|
||||||
|
gulp.task('move:js', function() {
|
||||||
|
return taskMove.js();
|
||||||
|
});
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Lint Sass and JavaScript
|
||||||
|
//=======================================================
|
||||||
|
gulp.task('lint', ['lint:sass', 'lint:js']);
|
||||||
|
|
||||||
|
// Lint Sass based on .sass-lint.yml config.
|
||||||
|
gulp.task('lint:sass', function () {
|
||||||
|
return taskLint.sass();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Lint JavaScript based on .eslintrc config.
|
||||||
|
gulp.task('lint:js', function () {
|
||||||
|
return taskLint.js();
|
||||||
|
});
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Compress Files
|
||||||
|
//=======================================================
|
||||||
|
gulp.task('compress', function() {
|
||||||
|
return taskCompress.assets();
|
||||||
|
});
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Generate style guide
|
||||||
|
//=======================================================
|
||||||
|
gulp.task('styleguide', function() {
|
||||||
|
return taskStyleGuide.generate(__dirname);
|
||||||
|
});
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Concat all CSS files into a master bundle.
|
||||||
|
//=======================================================
|
||||||
|
gulp.task('concat', function () {
|
||||||
|
return taskConcat.css();
|
||||||
|
});
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Clean all directories.
|
||||||
|
//=======================================================
|
||||||
|
gulp.task('clean', ['clean:css', 'clean:js', 'clean:styleguide']);
|
||||||
|
|
||||||
|
// Clean style guide files.
|
||||||
|
gulp.task('clean:styleguide', function () {
|
||||||
|
return taskClean.styleguide();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Clean CSS files.
|
||||||
|
gulp.task('clean:css', function () {
|
||||||
|
return taskClean.css();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Clean JS files.
|
||||||
|
gulp.task('clean:js', function () {
|
||||||
|
return taskClean.js();
|
||||||
|
});
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Watch and recompile sass.
|
||||||
|
//=======================================================
|
||||||
|
|
||||||
|
// Pull the sass watch task out so we can use run sequence.
|
||||||
|
|
||||||
|
gulp.task('watch:sass', function(callback) {
|
||||||
|
runSequence(
|
||||||
|
['lint:sass', 'compile:sass'],
|
||||||
|
'concat',
|
||||||
|
callback
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Main watch task.
|
||||||
|
gulp.task('watch', function() {
|
||||||
|
|
||||||
|
// BrowserSync proxy setup
|
||||||
|
// Uncomment this and swap proxy with your local env url.
|
||||||
|
// NOTE: for this to work in Drupal, you must install and enable
|
||||||
|
// https://www.drupal.org/project/link_css. This module should
|
||||||
|
// NOT be committed to the repo OR enabled on production.
|
||||||
|
//
|
||||||
|
// This should work out of the box for work within the style guide.
|
||||||
|
//
|
||||||
|
// sync.init({
|
||||||
|
// open: false,
|
||||||
|
// proxy: 'http://test.mcdev'
|
||||||
|
// });
|
||||||
|
|
||||||
|
// Watch all my sass files and compile sass if a file changes.
|
||||||
|
gulp.watch(
|
||||||
|
'./src/{global,layout,components}/**/*.scss',
|
||||||
|
['watch:sass']
|
||||||
|
);
|
||||||
|
|
||||||
|
// Watch all my JS files and compile if a file changes.
|
||||||
|
gulp.watch([
|
||||||
|
'./src/{global,layout,components}/**/*.js'
|
||||||
|
], ['lint:js', 'compile:js']);
|
||||||
|
|
||||||
|
// Watch all my twig files and rebuild the style guide if a file changes.
|
||||||
|
gulp.watch(
|
||||||
|
'./src/{layout,components}/**/*.twig',
|
||||||
|
['watch:styleguide']
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Reload the browser if the style guide is updated.
|
||||||
|
gulp.task('watch:styleguide', ['styleguide'], sync.reload);
|
||||||
|
|
||||||
|
//=======================================================
|
||||||
|
// Default Task
|
||||||
|
//
|
||||||
|
// runSequence runs 'clean' first, and when that finishes
|
||||||
|
// 'lint', 'compile', 'compress', 'styleguide' run
|
||||||
|
// at the same time. 'concat' runs last.
|
||||||
|
//=======================================================
|
||||||
|
gulp.task('default', function(callback) {
|
||||||
|
runSequence(
|
||||||
|
'clean',
|
||||||
|
['lint', 'compile', 'compress', 'styleguide'],
|
||||||
|
'concat',
|
||||||
|
callback
|
||||||
|
);
|
||||||
|
});
|
Binary file not shown.
After ![]() (image error) Size: 43 KiB |
BIN
web/themes/custom/geofresco/images/logo-GEO-narrow.png
Normal file
BIN
web/themes/custom/geofresco/images/logo-GEO-narrow.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 14 KiB |
59
web/themes/custom/geofresco/package.json
Normal file
59
web/themes/custom/geofresco/package.json
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
{
|
||||||
|
"name": "family_home",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"build": "gulp",
|
||||||
|
"compile": "gulp compile",
|
||||||
|
"watch": "gulp watch",
|
||||||
|
"styleguide": "gulp styleguide",
|
||||||
|
"compress": "gulp compress",
|
||||||
|
"lint": "gulp lint",
|
||||||
|
"clean": "gulp clean",
|
||||||
|
"gulp": "gulp"
|
||||||
|
},
|
||||||
|
"babel": {
|
||||||
|
"presets": [
|
||||||
|
[
|
||||||
|
"env",
|
||||||
|
{
|
||||||
|
"targets": {
|
||||||
|
"browsers": [
|
||||||
|
"IE >= 9",
|
||||||
|
"last 3 versions"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
"transform-remove-strict-mode"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"IE >= 9",
|
||||||
|
"last 3 versions"
|
||||||
|
],
|
||||||
|
"devDependencies": {
|
||||||
|
"babel-plugin-transform-remove-strict-mode": "0.0.2",
|
||||||
|
"babel-preset-env": "^1.6.0",
|
||||||
|
"browser-sync": "^2.18.12",
|
||||||
|
"del": "^3.0.0",
|
||||||
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-autoprefixer": "^4.0.0",
|
||||||
|
"gulp-babel": "^6.1.2",
|
||||||
|
"gulp-concat": "^2.6.1",
|
||||||
|
"gulp-eslint": "^4.0.0",
|
||||||
|
"gulp-imagemin": "^3.3.0",
|
||||||
|
"gulp-order": "^1.1.1",
|
||||||
|
"gulp-rename": "^1.2.2",
|
||||||
|
"gulp-sass": "^3.1.0",
|
||||||
|
"gulp-sass-lint": "^1.3.2",
|
||||||
|
"gulp-sourcemaps": "^2.6.0",
|
||||||
|
"kss": "^3.0.0-beta.18",
|
||||||
|
"run-sequence": "^2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"bulma": "^0.6.2",
|
||||||
|
"bulma-extensions": "^1.0.4"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
31
web/themes/custom/geofresco/src/global/_base.scss
Normal file
31
web/themes/custom/geofresco/src/global/_base.scss
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
@charset "utf-8";
|
||||||
|
|
||||||
|
// Set our custom font for headers
|
||||||
|
.title,
|
||||||
|
.content h1,
|
||||||
|
.content h2,
|
||||||
|
.content h3,
|
||||||
|
.content h4,
|
||||||
|
.content h5,
|
||||||
|
.content h6 {
|
||||||
|
font-family: $family-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prevent images from being larger than their Drupal-set size
|
||||||
|
.image.no-upscale img {
|
||||||
|
width: intrinsic; /* Safari/WebKit uses a non-standard name */
|
||||||
|
width: -moz-max-content; /* Firefox/Gecko */
|
||||||
|
width: -webkit-max-content; /* Chrome */
|
||||||
|
}
|
||||||
|
|
||||||
|
// Style the wordmark (logo)
|
||||||
|
.navbar-item .wordmark {
|
||||||
|
max-height: 3rem; // 4rem
|
||||||
|
}
|
||||||
|
|
||||||
|
$navbar-item-img-max-height: 3rem;
|
||||||
|
|
||||||
|
.navbar-item .wordmark img {
|
||||||
|
height: 100%;
|
||||||
|
width: auto;
|
||||||
|
}
|
15
web/themes/custom/geofresco/src/global/_components.scss
Normal file
15
web/themes/custom/geofresco/src/global/_components.scss
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
@charset "UTF-8";
|
||||||
|
// Extend or override Bulma's components,
|
||||||
|
// ../../node_modules/bulma/sass/components
|
||||||
|
|
||||||
|
// Make menu items slightly less far apart so we never entirely lose
|
||||||
|
// 'Community' on mid-size screens.
|
||||||
|
// See https://gitlab.com/drutopia/octavia/issues/52
|
||||||
|
.navbar-item, .navbar-link {
|
||||||
|
padding-left: .75rem;
|
||||||
|
padding-right: .75rem;
|
||||||
|
@include from($widescreen) {
|
||||||
|
padding-left: 1rem;
|
||||||
|
padding-right: 1rem;
|
||||||
|
}
|
||||||
|
}
|
25
web/themes/custom/geofresco/src/global/_elements.scss
Normal file
25
web/themes/custom/geofresco/src/global/_elements.scss
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
@charset "UTF-8";
|
||||||
|
// Extend or override Bulma's elements ../../node_modules/bulma/sass/elements
|
||||||
|
|
||||||
|
// Style the slogan shown at the top of each page
|
||||||
|
.slogan.title {
|
||||||
|
color: $red;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: normal;
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 0.8rem; // 1.2rem
|
||||||
|
margin-left: 0.6rem; // 0.8rem
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero.is-primary .family-home-branding__front {
|
||||||
|
padding: .5rem .75rem;
|
||||||
|
background-color: white;
|
||||||
|
.column {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.slogan.title {
|
||||||
|
margin-top: 0;
|
||||||
|
color: $red;
|
||||||
|
}
|
||||||
|
}
|
46
web/themes/custom/geofresco/src/global/_fonts.scss
Normal file
46
web/themes/custom/geofresco/src/global/_fonts.scss
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
$family-serif: "Pagella", "Palatino", "Bookman", "Bookman Old Style", "Garamond", "Georgia", "Times", "Times New Roman", serif !default
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Pagella';
|
||||||
|
src: url('../../fonts/texgyrepagella-regular-webfont.eot');
|
||||||
|
src: url('../../fonts/texgyrepagella-regular-webfont.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('../../fonts/texgyrepagella-regular-webfont.woff') format('woff'),
|
||||||
|
url('../../fonts/texgyrepagella-regular-webfont.ttf') format('truetype'),
|
||||||
|
url('../../fonts/texgyrepagella-regular-webfont.svg#tex_gyre_pagellaregular') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Pagella';
|
||||||
|
src: url('../../fonts/texgyrepagella-bold-webfont.eot');
|
||||||
|
src: url('../../fonts/texgyrepagella-bold-webfont.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('../../fonts/texgyrepagella-bold-webfont.woff') format('woff'),
|
||||||
|
url('../../fonts/texgyrepagella-bold-webfont.ttf') format('truetype'),
|
||||||
|
url('../../fonts/texgyrepagella-bold-webfont.svg#tex_gyre_pagellabold') format('svg');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Pagella';
|
||||||
|
src: url('../../fonts/texgyrepagella-italic-webfont.eot');
|
||||||
|
src: url('../../fonts/texgyrepagella-italic-webfont.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('../../fonts/texgyrepagella-italic-webfont.woff') format('woff'),
|
||||||
|
url('../../fonts/texgyrepagella-italic-webfont.ttf') format('truetype'),
|
||||||
|
url('../../fonts/texgyrepagella-italic-webfont.svg#tex_gyre_pagellaitalic') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Pagella';
|
||||||
|
src: url('../../fonts/texgyrepagella-bolditalic-webfont.eot');
|
||||||
|
src: url('../../fonts/texgyrepagella-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('../../fonts/texgyrepagella-bolditalic-webfont.woff') format('woff'),
|
||||||
|
url('../../fonts/texgyrepagella-bolditalic-webfont.ttf') format('truetype'),
|
||||||
|
url('../../fonts/texgyrepagella-bolditalic-webfont.svg#tex_gyre_pagellabold_italic') format('svg'
|
||||||
|
);
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
3
web/themes/custom/geofresco/src/global/_grid.scss
Normal file
3
web/themes/custom/geofresco/src/global/_grid.scss
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
@charset "UTF-8";
|
||||||
|
// Extend or override Bulma's grid ../../node_modules/bulma/sass/grid
|
||||||
|
|
6
web/themes/custom/geofresco/src/global/_layout.scss
Normal file
6
web/themes/custom/geofresco/src/global/_layout.scss
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
@charset "UTF-8";
|
||||||
|
// Extend or override Bulma's layouts ../../node_modules/bulma/sass/layout
|
||||||
|
|
||||||
|
.hero-body {
|
||||||
|
padding: 2rem 1.5rem;
|
||||||
|
}
|
28
web/themes/custom/geofresco/src/global/global.scss
Normal file
28
web/themes/custom/geofresco/src/global/global.scss
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
// Bring in Bulma allowing us to extend and override it.
|
||||||
|
|
||||||
|
// Set brand colors.
|
||||||
|
$blue: #4391E0;
|
||||||
|
$red: #a70c20;
|
||||||
|
|
||||||
|
// Update Bulma's global variables.
|
||||||
|
$primary: $blue;
|
||||||
|
|
||||||
|
// Import each part of Bulma separately so we can layer in our styles.
|
||||||
|
// Extend or override Bulam's base styles in this themes base.scss etc.
|
||||||
|
@import "../../node_modules/bulma/sass/utilities/_all";
|
||||||
|
@import "fonts";
|
||||||
|
@import "../../node_modules/bulma/sass/base/_all";
|
||||||
|
@import "base";
|
||||||
|
@import "../../node_modules/bulma/sass/elements/_all";
|
||||||
|
@import "elements";
|
||||||
|
@import "../../node_modules/bulma/sass/components/_all";
|
||||||
|
@import "components";
|
||||||
|
@import "../../node_modules/bulma/sass/grid/_all";
|
||||||
|
@import "grid";
|
||||||
|
@import "../../node_modules/bulma/sass/layout/_all";
|
||||||
|
@import "layout";
|
||||||
|
|
||||||
|
// You can add final styles below or import another Sass or SCSS stylesheet here
|
||||||
|
// and it will have access to Bulma variables and mixins.
|
||||||
|
|
||||||
|
@import '../../node_modules/bulma-extensions/bulma-timeline/dist/bulma-timeline';
|
7
web/themes/custom/geofresco/src/global/overrides.scss
Normal file
7
web/themes/custom/geofresco/src/global/overrides.scss
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
.navbar > .container > .navbar-brand {
|
||||||
|
margin-left: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
padding-top: 1.5rem;
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
{% extends "block.html.twig" %}
|
||||||
|
{#
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* Default theme implementation 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.
|
||||||
|
*
|
||||||
|
* @ingroup themeable
|
||||||
|
*/
|
||||||
|
#}
|
||||||
|
{% block content %}
|
||||||
|
{% if site_logo %}
|
||||||
|
<figure class="wordmark image is-pulled-left">
|
||||||
|
<a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">
|
||||||
|
<img src="{{ site_logo }}" alt="{{ site_name }}" />
|
||||||
|
</a>
|
||||||
|
</figure>
|
||||||
|
{% endif %}
|
||||||
|
<a class="title is-5 slogan" href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">{{ site_slogan }}</a>
|
||||||
|
{% endblock content %}
|
|
@ -0,0 +1,46 @@
|
||||||
|
{#
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* Default theme implementation for a facets item list.
|
||||||
|
*
|
||||||
|
* 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").
|
||||||
|
* - wrapper_attributes: HTML attributes to be applied to the list wrapper.
|
||||||
|
* - 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: A list of contextual data associated with the list. May contain:
|
||||||
|
* - list_style: The ID of the widget plugin this facet uses.
|
||||||
|
* - facet: The facet for this result item.
|
||||||
|
* - id: the machine name for the facet.
|
||||||
|
* - label: The facet label.
|
||||||
|
*
|
||||||
|
* @see facets_preprocess_facets_item_list()
|
||||||
|
*
|
||||||
|
* @ingroup themeable
|
||||||
|
*/
|
||||||
|
#}
|
||||||
|
<div class="facets-widget- {{- facet.widget.type -}} ">
|
||||||
|
{% if facet.widget.type %}
|
||||||
|
{%- set attributes = attributes.addClass('item-list__' ~ facet.widget.type) %}
|
||||||
|
{% endif %}
|
||||||
|
{% if items or empty %}
|
||||||
|
{%- if title is not empty -%}
|
||||||
|
<h2 class="subtitle is-4 is-uppercase">{{ title }}</h2>
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
{%- if items -%}
|
||||||
|
<{{ list_type }}{{ attributes }}>
|
||||||
|
{%- for item in items -%}
|
||||||
|
<li{{ item.attributes }}>{{ item.value }}</li>
|
||||||
|
{%- endfor -%}
|
||||||
|
</{{ list_type }}>
|
||||||
|
{%- else -%}
|
||||||
|
{{- empty -}}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif %}
|
||||||
|
</div>
|
|
@ -0,0 +1,17 @@
|
||||||
|
{#
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* Default theme implementation 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()
|
||||||
|
*
|
||||||
|
* @ingroup themeable
|
||||||
|
*/
|
||||||
|
#}
|
||||||
|
<figure class="image no-upscale">
|
||||||
|
<img{{ attributes }} />
|
||||||
|
</figure>
|
|
@ -0,0 +1,7 @@
|
||||||
|
{% extends "@stable/content/page-title.html.twig" %}
|
||||||
|
{#
|
||||||
|
/**
|
||||||
|
* Make page titles larger by adding a class (where size 1 is the largest).
|
||||||
|
*/
|
||||||
|
#}
|
||||||
|
{% set title_attributes = title_attributes.addClass("is-size-2") %}
|
|
@ -0,0 +1,50 @@
|
||||||
|
{% extends "@bulma/system/page.html.twig" %}
|
||||||
|
{#
|
||||||
|
Limit the main content column to a max of 10 units at widescreen and above.
|
||||||
|
@see system/page.html.twig in the Bulma theme.
|
||||||
|
#}
|
||||||
|
{%
|
||||||
|
set page = page|merge({
|
||||||
|
'content_attributes': create_attribute().addClass([
|
||||||
|
'main-content',
|
||||||
|
'column',
|
||||||
|
'is-10-widescreen',
|
||||||
|
]),
|
||||||
|
})
|
||||||
|
%}
|
||||||
|
|
||||||
|
{% if is_front %}
|
||||||
|
{%
|
||||||
|
set page = page|merge({
|
||||||
|
'navbar_branding': '',
|
||||||
|
})
|
||||||
|
%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% block header_and_search %}
|
||||||
|
{# Header hero region + search #}
|
||||||
|
<div class="container">
|
||||||
|
<div class="columns is-marginless is-vcentered">
|
||||||
|
<div class="column">
|
||||||
|
{% if not is_front %}
|
||||||
|
{{ page.header }}
|
||||||
|
{% endif %}
|
||||||
|
{% if is_front and site_logo %}
|
||||||
|
<div class="columns is-desktop is-vcentered family-home-branding__front">
|
||||||
|
<div class="column is-two-fifths-desktop">
|
||||||
|
<figure class="wordmark image">
|
||||||
|
<img src="{{ site_logo }}" alt="{{ site_name }}" />
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
<span class="title is-size-5 is-size-4-tablet is-size-3-widescreen slogan">{{ site_slogan }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="column is-narrow pull-right">
|
||||||
|
{{ page.header_search }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock header_and_search %}
|
Loading…
Add table
Add a link
Reference in a new issue