diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..050b5e0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +/.* export-ignore +/_test export-ignore diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/LICENSE @@ -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. + + + Copyright (C) + + 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. + + , 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. diff --git a/README b/README new file mode 100644 index 0000000..6cadc0c --- /dev/null +++ b/README @@ -0,0 +1,27 @@ +sprintdoc template for DokuWiki + +modern, responsive template that integrates multiple plugins + +All documentation for this template can be found at +https://www.dokuwiki.org/template:sprintdoc + +If you install this template manually, make sure it is installed in +lib/tpl/sprintdoc/ - if the folder is called different it +will not work! + +Please refer to http://www.dokuwiki.org/extensions for additional info +on how to install extensions in DokuWiki. + +---- +Copyright (C) Jana Deutschlaender + +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; version 2 of the License + +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. + +See the LICENSING file for details diff --git a/README.md b/README.md deleted file mode 100755 index 1c0e75e..0000000 --- a/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# sprintDoc Template for dokuwiki -by Jana Deutschlaender - -Documentation: [https://www.dokuwiki.org/template:sprintdoc](https://www.dokuwiki.org/template:sprintdoc) - -Version: see template.info.txt - -License: GPL2, see COPYING diff --git a/Template.php b/Template.php index 28df366..1cd2739 100644 --- a/Template.php +++ b/Template.php @@ -69,6 +69,8 @@ class Template { $event->data['footer'] = 'Footer below the page content'; $event->data['sidebarfooter'] = 'Footer below the sidebar'; $event->data['sidebarheader'] = 'Header above the sidebar'; + $event->data['navtop'] = 'Additional navigation items at the top'; + $event->data['navbottom'] = 'Additional navigation items at the bottom'; } /** @@ -141,13 +143,31 @@ class Template { $nav .= ''; + + $nav .= $this->getInclude('navtop'); $nav .= tpl_include_page($conf['sidebar'], false, true); + $nav .= $this->getInclude('navbottom'); $nav .= ''; } return $header . $nav; } + /** + * Default class defining is the sidebar should collapse + * + * @return string + */ + public function fullWidthClass() { + global $ACT; + // no auto collapsing? empty class + if (!tpl_getConf('autocollapse')) return ''; + // mode show? empty class + if ($ACT === "show") return ''; + // anything else? wide content + return 'wide-content '; + } + /** * Get all the tabs to display * @@ -244,32 +264,16 @@ class Template { $title = tpl_getLang('adjunct_start_logo_text') . $conf['title']; } - $desktop = self::getResizedImgTag( - 'img', - array( - 'class' => 'mobile-hide', - 'src' => array('wiki:logo-wide.png', 'wiki:logo.png'), - 'alt' => $title, - ), - 0, 50, false - ); - $mobile = self::getResizedImgTag( - 'img', - array( - 'class' => 'mobile-only', - 'src' => array('wiki:logo-32x32.png', 'wiki:favicon.png', 'wiki:logo-square.png', 'wiki:logo.png'), - 'alt' => $title, - ), - 32, 32 - ); + $logo = << +EH22 DEMO +HTML; // homepage logo should not link to itself (BITV accessibility requirement) if($linkit) { - tpl_link(wl(), $desktop, 'accesskey="h" title="[H]"'); - tpl_link(wl(), $mobile, 'accesskey="h" title="[H]"'); + tpl_link(wl(), $logo, 'accesskey="h" title="[H]"'); } else { - echo $desktop; - echo $mobile; + echo $logo; } } diff --git a/conf/default.php b/conf/default.php index 1ca4c37..f666d04 100755 --- a/conf/default.php +++ b/conf/default.php @@ -6,3 +6,6 @@ $conf['sidebar_sections'] = 'h1,h2,h3,h4,h5'; $conf['header_layout'] = 'header-default'; +$conf['autocollapse'] = 1; +$conf['closedwiki'] = 0; +$conf['copyright'] = ''; diff --git a/conf/metadata.php b/conf/metadata.php index 6214fd8..863b778 100755 --- a/conf/metadata.php +++ b/conf/metadata.php @@ -17,3 +17,7 @@ $meta['header_layout'] = array( 'header-compact', ), ); + +$meta['autocollapse'] = array('onoff'); +$meta['closedwiki'] = array('onoff'); +$meta['copyright'] = array(''); diff --git a/css/area_content.less b/css/area_content.less index 2ec99a3..67f2840 100755 --- a/css/area_content.less +++ b/css/area_content.less @@ -2,31 +2,36 @@ * This file provides the design styles for the page content. */ +.picker { + z-index: 2; // position over .content +} + .content .row { > .col-xs-12 { - box-shadow: @box-shadow; + z-index: 1; + + background-color: var(--color-background); + #dokuwiki__content { position: relative; - &::before { - content: ''; - position: absolute; - top: 0; - left: 0; - height: @page-header_height; - box-sizing: border-box; - width: 100%; - background-color: @ini_background_page_header; - border-bottom: 1px solid @ini_border_light; - } + .page-content { + padding-top: @page-header_height; - .msg-area + * { - clear: both; - padding-top: 1em; // as h1 + .msg-area + * { + clear: both; + padding-top: 1em; // as h1 + } } } } + @media @screen_min-md { + > .col-xs-12 { + border-left: dashed 0.25em var(--color-shade-4); + border-radius: 0; + } + } } .main-content > .level2, diff --git a/css/area_footer.less b/css/area_footer.less index 62dafe5..7e103bd 100755 --- a/css/area_footer.less +++ b/css/area_footer.less @@ -7,10 +7,10 @@ @media screen { .page-footer { min-height: @page-header_height; - background-color: @ini_background_page_header; - border-top: 1px solid @ini_border_light; + background-color: var(--color-background); + border-top: 1px solid var(--color-shade-4); border-radius: 0 0 @fix_border-radius @fix_border-radius; // @ini_default_border_radius vs. @fix_border-radius - color: @ini_background_page_footer; + color: var(--color-shade-4); font-size: @font-size-default; text-align: right; padding: @margin-small @margin-default; @@ -35,19 +35,16 @@ .main-footer { position: relative; box-sizing: border-box; - background-color: @ini_background_site; + background-color: var(--color-background); margin-top: 5px; // for box-shadow of content + text-align: center; } p { - color: @ini_text_webframe; + color: var(--color-shade-4); font-size: @font-size-default; margin: 0; } - - a { - color: @ini_nav_menu_color; - } } } diff --git a/css/area_footnotes.less b/css/area_footnotes.less index db8fb85..87abded 100644 --- a/css/area_footnotes.less +++ b/css/area_footnotes.less @@ -51,4 +51,5 @@ .insitu-footnote { line-height: 130%; + z-index: 100; } diff --git a/css/area_forms.less b/css/area_forms.less index 9efaee0..d7be3cf 100644 --- a/css/area_forms.less +++ b/css/area_forms.less @@ -59,8 +59,8 @@ meter, progress { font: inherit; font-weight: normal; - color: #333; - background-color: #fff; + color: var(--color-foreground); + background-color: var(--color-background); line-height: normal; margin: 0; vertical-align: middle; @@ -90,8 +90,7 @@ textarea, select, keygen { min-height: @formfield_min-height; - border: 1px solid @ini_border; - box-shadow: inset 0 0 1px #eee; + border: 1px solid var(--color-shade-4); border-radius: @fix_border-radius; padding-left: .3rem; padding-right: .3rem; @@ -118,7 +117,7 @@ select:active, select:focus, keygen:active, keygen:focus { - border-color: #999; + border-color: var(--color-shade-4); } input[type="file"] { @@ -158,19 +157,21 @@ button[type=submit], cursor: pointer; box-shadow: none; background-image: none; - background-color: @ini_button_background; - border: 1px solid @ini_button_background; - border-radius: @fix_border-radius; - color: @ini_button_color; + background-color: var(--color-shade-1); + border: solid 0.1rem var(--color-shade-2); + border-radius: 0.5rem; + color: var(--color-foreground); vertical-align: top; padding: .3em @grid; - transition: @transition background-color, @transition color; &:hover, &:active, &:focus { - background-color: @ini_button_color; - color: @ini_button_background; + background-color: transparent; + color: var(--color-glow-primary); + border-color: var(--color-glow-primary); + transition: var(--transition-glow); + filter: var(--filter-glow-primary); } } @@ -239,13 +240,11 @@ button[readonly], select[readonly], textarea[readonly] { cursor: auto; - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc4MjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNEY0RjQiIG9mZnNldD0iMC4zIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VFRUVFRSIgb2Zmc2V0PSIwLjk5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0NDQ0NDQyIgb2Zmc2V0PSIuOTkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNnODI0KSIgLz4KPC9zdmc+); - background-image: linear-gradient(to bottom, #ffffff 0%, #f4f4f4 30%, #eeeeee 99%, #cccccc 99%); - background-color: #eee; + background-color: var(--color-background); opacity: .5; border: 1px solid @ini_border; border-radius: @fix_border-radius; - color: #333; + color: var(--color-shade-4); font-weight: normal; padding: .3em @grid; transition: @transition background-color, @transition color; diff --git a/css/area_header.less b/css/area_header.less index 50588a8..b041641 100755 --- a/css/area_header.less +++ b/css/area_header.less @@ -13,20 +13,19 @@ @media @screen_min-md { .logo { padding: 1rem 0 .3rem; + text-align: center; img { - height: 4.6rem; + height: 200px; width: auto; - border-style: solid; - border-color: transparent; - border-width: 2px 0; + transition: transform 200ms ease-in-out; } a:hover, a:focus, a:active { img { - border-width: 0; + transform: scale(1.05); } } } @@ -34,7 +33,13 @@ @media @screen_max-md { .logo { - display: table-cell; + //display: table-cell; + text-align: center; + width: 100%; + + img { + max-height: 200px; + } .mobile-only { margin: .8rem 1rem .6rem 0; @@ -85,7 +90,7 @@ /* + + + wiki title + + + */ p.title { - background-color: @ini_background_site; + background-color: var(--color-background); opacity: @header-font-opacity; color: @ini_text_webframe; line-height: @line-height-default; diff --git a/css/area_main-content-anchor.less b/css/area_main-content-anchor.less new file mode 100644 index 0000000..c5e55dc --- /dev/null +++ b/css/area_main-content-anchor.less @@ -0,0 +1,36 @@ +#dokuwiki__content.main-content { + h1, h2, h3, h4, h5 { + a.anchor { + vertical-align: middle; + margin-left: 0.25em; + display: none; + position: absolute; + + svg { + width: 1em; + height: 1em; + fill: var(--color-foreground); + } + } + + &:hover { + a.anchor { + display: inline-block; + transition-property: filter, border-color; + transition-duration: 200ms; + transition-timing-function: ease-out; + + &:hover { + color: var(--color-glow-primary); + filter: var(--filter-glow-primary); + transition: var(--transition-glow); + + svg { + fill: var(--color-glow-primary); + } + } + + } + } + } +} diff --git a/css/area_main-content-secedit.less b/css/area_main-content-secedit.less index f341f80..1d26e34 100644 --- a/css/area_main-content-secedit.less +++ b/css/area_main-content-secedit.less @@ -12,19 +12,21 @@ form div.no { button { margin-top: -.4rem; - padding-right: 0; + margin-right: -0.4rem; + padding: 0.2rem 0.4rem; } } // "section editing button" button { + display: flex; + align-items: center; background-color: transparent; color: transparent; border-color: transparent; &::after { content: ''; - float: right; display: inline-block; background: transparent url("svg.php?svg=pencil.svg&f=existing") center center no-repeat; height: 1em; @@ -34,20 +36,20 @@ border-radius: @ini_default_border_radius; margin-left: @small-spacing; margin-top: -1px; + + color: var(--color-foreground); + mask-size: contain; + mask-position: center; + mask-repeat: no-repeat; + background: currentColor !important; + + mask-image: url('img/pencil.svg'); } &:hover, &:active, &:focus { - //background-color: @ini_existing; - color: @ini_existing; - //border-color: @ini_existing; - - &::after { - background-color: @ini_existing; - background-image: url("svg.php?svg=pencil.svg&f=background"); - border-color: @ini_existing; - } + .fnActiveButton(); } } } diff --git a/css/area_main-content.less b/css/area_main-content.less index 738ff65..6058c8c 100755 --- a/css/area_main-content.less +++ b/css/area_main-content.less @@ -6,7 +6,7 @@ div[class^="level"] { p a.media { img { - border: 1px dotted @ini_background_site; + border: 1px dotted var(--color-background); } &:hover, @@ -20,7 +20,6 @@ } > div, - .section_highlight > div, div[class^="level"] { > ul, > ol { diff --git a/css/area_main-sidebar-nav.less b/css/area_main-sidebar-nav.less index 37e1602..8363b35 100755 --- a/css/area_main-sidebar-nav.less +++ b/css/area_main-sidebar-nav.less @@ -19,12 +19,16 @@ } nav { + display: flex; + flex-direction: column; + gap: 0.75rem; + &.nav-main { margin-bottom: @nav-margin; } > p { - color: @ini_nav_menu_color; + color: var(--color-foreground); &.noissue { color: @ini_text_webframe; @@ -41,7 +45,7 @@ } li { - color: @ini_nav_menu_color; + color: var(--color-foreground); > div { color: @ini_text_webframe; @@ -59,45 +63,63 @@ /* + + + + + active + + + + + */ + span.curid { font-weight: bold; } } } - a { + a, label { &:link, &:visited { opacity: .9; - color: @ini_nav_menu_color; + color: var(--color-foreground); } * { - color: inherit; + color: var(--color-foreground); } } /* + + + the wrapper around the toggle to reserve space + + + */ + div.nav { min-height: @icon-size + @margin-small; - border: 1px solid transparent; + background-color: var(--color-background); + border-radius: 0.5rem; + + &.themeToggle input { + width: 0; + height: 0; + margin: 0; + padding: 0; + display: block; + opacity: 0; + } // the toggle element - a { + a, label { + border-radius: 0.5rem; + background-color: var(--color-shade-1); + transition: background-color 150ms; + color: var(--color-foreground); + font-size: 1.2em; + border: solid 0.1em var(--color-shade-1); + transition-property: filter, border-color; + transition-duration: 200ms; + transition-timing-function: ease-out; + + cursor: pointer; - display: table; + display: flex; + align-items: center; width: 100%; - min-height: @icon-size + @margin-small; opacity: 1; - border: 1px solid transparent; - border-radius: @fix_border-radius; - color: @ini_nav_menu_color; - font-size: @font-size-head6; font-weight: normal; - margin: -1px 0 @very-small-spacing; - padding-bottom: .4rem; - padding-top: .4rem; - transition: @transition color, @transition background-color, @transition border-color; + margin: 0 0 @very-small-spacing; + padding: 0.4rem 0.1rem; + text-decoration: none; span { display: inline-block; @@ -105,19 +127,61 @@ color: inherit; } - &:hover, - &:focus, - &:active { - position: relative; // always show label, even with collapsed sidebar - width: 100%; - background-color: @ini_nav_menu_hover_bg; - border-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_color; - text-decoration: none; + span.ico { + display: flex; + align-items: center; + justify-content: center; + i[data-icon] { + font-size: 1.5rem; + } + } + + + /* + + + submenu entry is active + + + */ + /* + + + toggle: open + + + */ + + &.is-active, &.is-open { + background-color: var(--color-shade-2); + border-color: var(--color-shade-4); + color: var(--color-foreground); span.ico { &:after { - background-color: @ini_nav_menu_hover_color; + background-color: currentColor; + } + + strong { + border-color: currentColor; + } + + svg { + path { + fill: currentColor; + } + } + } + } + } + + &:hover, + &:focus-within { + position: relative; // always show label, even with collapsed sidebar + z-index: 100; + + a, label { + + width: 100%; + background-color: transparent; + border: solid 0.1em var(--color-glow-primary); + text-decoration: none; + color: var(--color-glow-primary); + filter: var(--filter-glow-primary); + transition: var(--transition-glow); + + + span.ico { + &:after { + background-color: currentColor; } strong { @@ -126,63 +190,12 @@ svg { path { - fill: @ini_nav_menu_hover_color; + fill: currentColor; } } } } - /* + + + submenu entry is active + + + */ - &.is-active { - font-weight: bold; - } - - /* + + + toggle: open + + + */ - &.is-open { - background-color: @ini_nav_menu_hover_color; - border-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_bg; - - span.ico { - &:after { - background-color: @ini_nav_menu_hover_bg; - } - - strong { - border-color: @ini_nav_menu_hover_bg; - } - - svg { - path { - fill: @ini_nav_menu_hover_bg; - } - } - } - - &:hover, - &:focus, - &:active { - background-color: @ini_nav_menu_hover_bg; - border-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_color; - - span.ico { - &:after { - background-color: @ini_nav_menu_hover_color; - } - - strong { - border-color: inherit; - } - - svg { - path { - fill: @ini_nav_menu_hover_color; - } - } - } - } - } } span.ico { @@ -205,7 +218,7 @@ bottom: auto; height: @border-height; width: 1px; - background-color: @ini_nav_menu_color; + background-color: currentColor; margin-top: -(@border-height / 2); // wordbreak too late in IE 10 @@ -222,7 +235,7 @@ display: inline-block; width: @icon-size * 0.98; height: @icon-size * 0.98; - border: 2px solid fade(@ini_nav_menu_color, 80%); + border: 2px solid currentColor; border-top-right-radius: 50%; border-bottom-left-radius: 50%; color: inherit; @@ -240,7 +253,7 @@ height: @icon-size; path { - fill: @ini_nav_menu_color; + fill: currentColor; transition: @transition all; } } @@ -254,10 +267,11 @@ } /* + + + + + the panel (hidden by default) + + + + + */ + div.nav-panel { display: none; margin-top: .5rem; - margin-left: @menu-margin; + margin-left: @margin-small; ul { margin-bottom: 1rem; @@ -267,6 +281,10 @@ margin-left: 16px; } } + + ul.toollist li { + margin-left: 0; + } } } @@ -298,7 +316,7 @@ #dokuwiki__aside { div.nav { a { - margin-left: 1px; + margin-left: 0; } } } @@ -324,7 +342,7 @@ min-width: 45%; max-width: 90%; height: auto; - background: @ini_background_site; + background: var(--color-background); > nav { position: relative; @@ -333,7 +351,8 @@ margin-top: 1.2rem; } - a { + a, + label { font-size: @font-size-small; } } diff --git a/css/area_main-sidebar-search.less b/css/area_main-sidebar-search.less index f2a4c03..a14fbc6 100644 --- a/css/area_main-sidebar-search.less +++ b/css/area_main-sidebar-search.less @@ -13,9 +13,7 @@ p.toggleSearch a, button[type="submit"] { - .fontello(); .hide-text-show-before(); - .icon-search(); position: relative; width: @icon-size; @@ -26,60 +24,65 @@ border: solid 1px transparent; padding: 0; transition: @transition color, @transition background-color, @transition border-color; + display: flex; + align-items: center; &:hover, &:focus, &:active { - min-height: @icon-size; - background-color: @ini_button_color; - border: solid 1px @ini_button_background; + .fnActiveButton(); - &::after { - background-color: @ini_button_background; + &::after{ + background-color: var(--color-glow-primary); } } &::before { - width: 100%; - color: inherit; + width: @icon-size; + height: 0.8em; font-size: @icon-search_font-size; text-align: center; margin: 0; + color: var(--color-foreground); + content: ''; + display: block; + mask-size: contain; + mask-position: center; + mask-repeat: no-repeat; + background-color: currentColor; + + + mask-image: url('img/search.svg'); } } p.toggleSearch { display: none; - margin: -2px 0 0; // reverse transparent border and box-sizing of a child padding: 0; - @media @screen_max-xxlg { - margin-top: -1px; - } - a { min-width: (@toggle-showsidebar_width + 0.1); /* must be a bit a wider than @toggle-showsidebar_width to hide right border */ width: @main-ico-dummy; - border-radius: @fix_border-radius; - color: @ini_nav_menu_color; + border-radius: 0.5rem 0 0 0.5rem; + border-right: none; + background-color: var(--color-shade-1); + color: var(--color-foreground); text-decoration: none; box-sizing: border-box; &::before { - position: absolute; - top: 50%; - left: 0; + width: 100%; color: inherit; text-align: center; - margin-top: -(@icon-search_font-size / 2); } &:hover, &:focus, &:active { - background-color: @ini_nav_menu_hover_bg; - border-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_color; + border-right: none; + background-color: transparent; + border-color: var(--color-glow-primary); + color: var(--color-glow-primary); } } } @@ -92,17 +95,6 @@ height: auto; min-height: (@icon-size - .2); color: @quicksearch-button-color; - - &:hover, - &:focus, - &:active { - top: 0; - bottom: 0; - min-height: @icon-size; - background-color: @ini_button_color; - border: solid 1px @ini_button_background; - color: @ini_button_background; - } } /* + + + form + + + */ @@ -128,7 +120,6 @@ button[type="submit"] { border: solid 1px transparent; - border-right-color: @ini_border; margin-left: -(@icon-size); &::after { @@ -138,23 +129,27 @@ bottom: 15%; width: 1px; left: -1px; - background-color: @ini_border; + background-color: var(--color-shade-4); transition: @transition background-color; } } div.ajax_qsearch { box-shadow: none; - background-color: #FFF; + background-color: var(--color-shade-1); padding: 0; + z-index: 300; // otherwise hidden behind sidebar in mobile view + border: solid 0.1em var(--color-shade-4); + border-radius: 0.5rem; - strong { - color: @quicksearch-button-color; - padding: 0.25rem 0.5rem + > strong { + color: var(--color-foreground); + padding: 0.25rem 0.5rem; + border-bottom: solid 0.1em var(--color-shade-4); } ul li { - color: @quicksearch-button-color; + color: var(--color-foreground); a { display: block; @@ -162,12 +157,12 @@ overflow: hidden; color: inherit; text-overflow: ellipsis; - } - } - ul li { - &:nth-child(odd) { - background-color: @suggestion-zebra; + &:hover, + &:focus, + &:active { + background-color: var(--color-shade-2); + } } } } @@ -223,6 +218,11 @@ // show when toggled body.show-mobile-sidebar { + #dokuwiki__aside { + padding: 0 1rem; + border-radius: 0.5rem; + } + p.toggleSearch { display: none !important; } diff --git a/css/area_main-sidebar-tabs.less b/css/area_main-sidebar-tabs.less index 399e601..f2fdefd 100644 --- a/css/area_main-sidebar-tabs.less +++ b/css/area_main-sidebar-tabs.less @@ -21,7 +21,7 @@ border-top-left-radius: @fix_border-radius; &.active { - border-bottom: 1px solid @ini_background_site; + border-bottom: 1px solid var(--color-background); font-weight: bold; } } diff --git a/css/area_msg.less b/css/area_msg.less index 41fe08b..8697293 100644 --- a/css/area_msg.less +++ b/css/area_msg.less @@ -15,23 +15,65 @@ } } -/* short fix: SPR-891 - icons for notifications in message area are repeated */ div.success, div.error, div.info, div.notify { - background-repeat: no-repeat; - background-position: 8px 50%; - border: 1px solid #eeb; - font-size: 90%; - margin: 0 0 .5em; - padding: .4em; - padding-left: 32px; - overflow: hidden; - border-radius: @fix_border-radius; + display: block; + border: none; + border-left: solid 0.5rem var(--color-shade-4); + border-radius: 0.5rem; + padding: 1em; + background-image: none; + background-color: var(--color-shade-1); - * { - color: inherit; + &::before { + display: inline-block; + content: ""; + margin: 0.3em 0.2em 0 0; + width: 1em; + height: 1em; + mask-size: contain; + mask-position: center top; + mask-repeat: no-repeat; + background-color: currentColor; + vertical-align: top; + } + + &.success { + color: var(--color-success); + + &::before { + mask-image: url(img/tick_small.svg); + } + } + + &.error { + border-left-color: var(--color-error); + color: var(--color-foreground); + + &::before { + background-color: var(--color-error); + mask-image: url(img/power.svg); + } + } + + &.info { + color: var(--color-foreground); + + &::before { + mask-image: url(img/info.svg); + } + } + + &.notify { + border-left-color: var(--color-warning); + color: var(--color-foreground); + + &::before { + background-color: var(--color-warning); + mask-image: url(img/warning.svg); + } } a { diff --git a/css/area_nav-breadcrumb.less b/css/area_nav-breadcrumb.less index 7c7ac0c..4200172 100755 --- a/css/area_nav-breadcrumb.less +++ b/css/area_nav-breadcrumb.less @@ -6,29 +6,21 @@ position: relative; min-height: @page-header_height; box-sizing: border-box; - background-color: @ini_background; - border-bottom: 1px solid @ini_border_light; + background-color: var(--color-background); + border-bottom: 1px solid var(--color-shade-4); padding: 1rem 1.8rem .2rem; - @media @screen_max-md { - background-color: @ini_background_page_header; - } - @media @screen_max-xs { padding-left: @margin-small; padding-right: .75rem; } - @media @screen_xs-lg { - background-color: @ini_background; - } - > p { font-size: @font-size-small; margin: 0; @media @screen_max-xs{ - width: 1px; + width: 0; position: relative; overflow: hidden; height: 1.6rem; @@ -58,14 +50,16 @@ min-width: 1.9em; width: auto; box-sizing: border-box; - border: solid 1px transparent; - border-radius: @ini_default_border_radius; // @ini_default_border_radius vs. @fix_border-radius + background-color: var(--color-shade-1); + border: solid .1em transparent; + border-radius: 0.5rem; vertical-align: middle; text-decoration: none; margin-top: -.2em; - transition: @transition border-color; + transition: var(--transition-glow); &:before { + color: var(--color-foreground); font-size: @font-size-default + (@font-scale-factor * 2); margin-top: .17rem; } @@ -73,7 +67,14 @@ &:hover, &:focus, &:active { - border-color: @ini_existing; + &:before { + color: var(--color-glow-primary); + } + + background-color: transparent; + border-color: var(--color-glow-primary); + color: var(--color-glow-primary); + filter: var(--filter-glow-primary); } } } diff --git a/css/area_nav-metabox.less b/css/area_nav-metabox.less index 6d4af22..1e16a28 100755 --- a/css/area_nav-metabox.less +++ b/css/area_nav-metabox.less @@ -7,16 +7,22 @@ .flex-direction(); .justify-content(flex-end); + clear: none; + display: block; position: relative; float: right; + + box-sizing: border-box; max-width: 40%; - margin-top: -(@page_padding-top); // reverse padding-top of .page container - margin-right: -1px; + padding-bottom: 0.5rem; + height: 4rem !important; + + color: var(--color-foreground); // >= 1024 @media @screen_min-md { height: @page-header_height; - border: 1px solid transparent; + border: 0 none; } // < 1024 @@ -25,13 +31,29 @@ top: .2rem; right: auto; float: none; - display: block; max-width: 100%; min-height: @page-header_height; height: auto; border: 0 none; } + &.sticky { + position: fixed; + top: 0; + + ul.meta-tabs > li > a { + border-top-color: var(--color-background); + border-bottom-color: var(--color-shade-4); + border-radius: 0 0 @ini_default_border_radius @ini_default_border_radius; + + } + + .meta-content .tab-pane.active { + max-height: 80vh; + overflow: auto; + } + } + + .msg-area + a { clear: right; margin-top: 20px; @@ -99,26 +121,17 @@ position: relative; display: block; font-size: @font-size-small; - line-height: 1.42857143; - transition: @transition background-color, @transition border-color, @transition color; - - @media @screen_min-md { - background-color: @ini_background_site; - border: 1px solid @noopentasks-border; - border-bottom-color: @ini_background_site; - border-radius: @ini_default_border_radius @ini_default_border_radius 0 0; // @ini_default_border_radius vs. @fix_border-radius - color: @ini_nav_menu_color; - margin-left: 4px; - padding: .3em 1rem .1em; - } + transition: var(--transition-glow); + background-color: var(--color-shade-1); + border: solid 0.1em transparent; + border-radius: 0.5rem; + color: var(--color-foreground); + padding: .25em; + margin-left: 0; @media @screen_max-md { top: 0; - border: 1px solid @ini_existing; - color: @ini_existing; margin-top: .2rem; - margin-left: 0; - padding: .2em .3rem; } * { @@ -137,35 +150,16 @@ &:focus, &:active { text-decoration: none; - - @media @screen_min-md { - background-color: @ini_background; - border-color: @ini_existing; - color: @ini_existing; - } - - @media @screen_max-md { - background-color: @ini_existing; - border-color: @ini_background; - color: @ini_background; - } + background-color: transparent; + border-color: var(--color-glow-secondary); + color: var(--color-glow-secondary); + filter: var(--filter-glow-secondary); } } &.active { > a { cursor: default; - background-color: @ini_background; - border-color: @ini_existing; - border-bottom-color: @ini_background; - color: @ini_existing; - - @media @screen_max-md { - background-color: @ini_existing; - border-bottom-color: @ini_existing; - border-radius: 0; - color: @ini_background; - } } } } @@ -186,24 +180,24 @@ right: 0; display: none; width: 100%; - background-color: @ini_background; - border: 1px solid @ini_existing; + background-color: var(--color-shade-1); + border: solid .1em transparent; + border-radius: 0.5rem; @media @screen_min-xs { min-width: 20em; } @media @screen_min-md { - border-radius: 0 0 @fix_border-radius @fix_border-radius; // @ini_default_border_radius vs. @fix_border-radius + margin-top: 0.5rem; } &.active { display: block; - overflow: hidden; } a { - color: @ini_existing; + color: var(--color-foreground); } > div { @@ -245,8 +239,10 @@ float: none; margin: 0; padding: .6rem .5rem .5rem .8rem; - background: transparent; - border: 0 none; + background-color: transparent; + color: var(--color-foreground); + border: solid .1em var(--color-shade-4); + border-radius: 0.5rem; h3 { display: none; @@ -280,7 +276,7 @@ width: 4px; height: 4px; overflow: hidden; - background-color: @ini_existing; + background-color: var(--color-shade-4); } } } diff --git a/css/area_nav-page-attributes.less b/css/area_nav-page-attributes.less index 4484f4f..2d24c75 100644 --- a/css/area_nav-page-attributes.less +++ b/css/area_nav-page-attributes.less @@ -1,78 +1,54 @@ /** * Page Attribute Icons in the breadcrumb bar */ - -/* + + + + + icons in breadcrumb area + + + + + */ .page-attributes { list-style: none; float: right; - display: inline-block; - max-width: 30%; - margin: -.45em 0 0; + margin: -.45em 0 0; // FIXME sourrounding CSS should be fixed so negative margin is not needed padding: 0; - - @media @screen_max-xs { - max-width: 90%; - } + display: flex; + gap: 0.5rem; > li { - .btn-usertools-wrapper(); // uniform li - .btn-usertools-num(); - + margin: 0; + padding: 0; + border: 1px solid @wikiicons-border; + border-radius: @ini_default_border_radius; position: relative; - float: left; - display: block; - width: auto; - min-height: @toggle-size; - text-align: center; - margin: 0 .25rem; + display: flex; + align-items: center; + justify-content: center; + transition: @transition background-color, @transition border-color, @transition color; - strong { + // override any plugin element styles + * { + margin: 0; + padding: 0; + line-height: normal; display: block; - min-height: 1.64rem; - border: 1px solid @wikiicons-border; - border-radius: @ini_default_border_radius; } - a { - display: block; - width: auto; - min-height: 1.64rem; - background-color: @ini_nav_menu_hover_bg; - border: 1px solid @wikiicons-border; - border-radius: @ini_default_border_radius; - transition: @transition background-color, @transition border-color, @transition color; + // number badge + .btn-usertools-num(); - &:hover, - &:focus, - &:active { - background-color: @ini_nav_menu_hover_color; - border-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_bg; + // icon + svg { + height: 1.5em; + width: 1.5em; - span { - fill: @ini_nav_menu_hover_bg; - color: @ini_nav_menu_hover_bg; - } + path { + fill: @ini_nav_menu_color; } } - .prefix { - .btn-prefix(.26rem); - .icon-clipboard(); + // adjust colors on hover + &:hover { + background-color: @ini_nav_menu_hover_color; + border-color: @ini_nav_menu_hover_color; - display: block; - font-size: 1.2rem; - line-height: 1; - } - - .num { - top: -.6em; - font-size: @font-size-very-small; - } - - &:empty { - display: none; + svg path { + fill: @ini_nav_menu_hover_bg; + } } } } diff --git a/css/area_nav-pagetools.less b/css/area_nav-pagetools.less index 58df991..7172ae1 100755 --- a/css/area_nav-pagetools.less +++ b/css/area_nav-pagetools.less @@ -100,10 +100,11 @@ nav#dokuwiki__pagetools { } &:focus { - box-shadow: @box-shadow; + box-shadow: none; background-image: none; - background-color: @ini_background; - color: @ini_existing; + color: var(--color-glow-primary); + transition: var(--transition-glow); + filter: var(--filter-glow-primary); span { position: relative; @@ -113,7 +114,7 @@ nav#dokuwiki__pagetools { } svg { - fill: @ini_existing; + fill: var(--color-glow-primary); } } @@ -131,14 +132,7 @@ nav#dokuwiki__pagetools { vertical-align: middle; border: solid 1px transparent; margin: @page-tools_svg-space; - - @media @screen_min-md { - fill: @ini_nav_menu_color; - } - - @media @screen_max-md { - fill: @ini_existing; - } + fill: var(--color-foreground); } &.top { @@ -151,11 +145,12 @@ nav#dokuwiki__pagetools { &:hover { ul { box-shadow: @box-shadow; // @box-shadow-offset; - background-color: @ini_background; - border-color: @wikiicons-border; + background-color: var(--color-shade-1); + border-color: var(--color-shade-4); + border-radius: 0.5rem; li { - color: @ini_existing; + color: var(--color-foreground); a { box-shadow: none; @@ -166,17 +161,21 @@ nav#dokuwiki__pagetools { svg { border: solid 1px transparent; border-radius: @ini_default_border_radius; - fill: @ini_existing; + fill: var(--color-foreground); transition: @transition background-color, @transition border-color, @transition fill; } &:hover, &:focus, &:active { + color: var(--color-glow-primary); + transition: var(--transition-glow); + filter: var(--filter-glow-primary); + svg { - background-color: @ini_existing; - border-color: @ini_existing; - fill: @ini_background; + background-color: transparent; + border: none; + fill: var(--color-glow-primary); } } diff --git a/css/area_nav-usertools.less b/css/area_nav-usertools.less index fdba9c3..2762329 100755 --- a/css/area_nav-usertools.less +++ b/css/area_nav-usertools.less @@ -76,23 +76,14 @@ &.user { position: relative; display: table-cell; - background-color: @ini_background_site; - border: solid 1px @wikiicons-border; + background-color: var(--color-shade-1); + border: solid 1px var(--color-shade-2); border-radius: @ini_default_border_radius; // @ini_default_border_radius vs. @fix_border-radius - color: @ini_text_webframe; + color: var(--color-foreground); padding-right: .3rem; - @media @screen_min-md { - padding-top: .35rem; - } - @media @screen_max-md { min-height: @toggle-size; - padding-top: .3rem; - } - - @media @screen_max-sm { - padding-top: .35rem; } @media @screen_max-xs { @@ -102,14 +93,12 @@ overflow: hidden; white-space: nowrap; margin: -1px 0 0; - padding-top: .4rem; } @media @screen_max-xxs { left: -10px; right: 0; width: auto; - padding-top: .35rem; } > a { @@ -119,9 +108,9 @@ position: relative; height: 1rem; // for IE11 overflow: visible; - background: @ini_nav_menu_hover_bg; // for removing bg-image + background: var(--color-shade-1); // for removing bg-image border: 0 none; - color: @ini_nav_menu_hover_color; + color: var(--color-foreground); text-indent: 0; font-size: inherit; margin-right: -.3rem; @@ -158,7 +147,7 @@ right: -1px; width: auto; opacity: 0; - border: solid 1px @ini_nav_menu_hover_color; + border: solid 1px var(--color-shade-2); border-radius: @ini_default_border_radius; // @ini_default_border_radius vs. @fix_border-radius color: inherit; transform: none; @@ -167,12 +156,15 @@ &:hover, &:focus, &:active { - background-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_bg; + background-color: transparent; + color: var(--color-glow-secondary); + filter: var(--filter-glow-secondary); + transition: var(--transition-glow); &::before { opacity: 1; - border-color: @ini_nav_menu_hover_color; + filter: var(--filter-glow-secondary); + border-color: var(--color-glow-secondary); } bdi, @@ -197,22 +189,10 @@ &::before { position: absolute; + top: 2px; left: -2px; - font-size: 1.4rem; + font-size: @font-size-default + (@font-scale-factor * 4); margin: 0; - - @media @screen_min-xxlg { - top: -.25rem; - } - - @media @screen_max-xxlg { - top: -.2rem; - } - - @media @screen_max-xs { - top: -.25rem; - - } } } } // user @@ -222,16 +202,29 @@ .menuitem, button { padding: 2px 0 0 2px; min-height: @toggle-size; // overrides button[type="submit"] styles - border: solid 1px @wikiicons-border; // overrides button[type="submit"] styles + background-color: var(--color-shade-1); + color: var(--color-foreground); + border: solid 1px var(--color-shade-2); // overrides button[type="submit"] styles .btn-hover(); - &:hover svg, &:focus svg { + &:hover, + &:active, + &:focus { + background-color: transparent; + border-color: var(--color-glow-secondary); + color: var(--color-glow-secondary); + filter: var(--filter-glow-secondary); + } + + &:hover svg, + &:active svg, + &:focus svg { transition: @transition fill; - fill: @ini_nav_menu_hover_bg; + fill: var(--color-glow-secondary); } svg { - fill: @ini_nav_menu_hover_color; + fill: var(--color-shade-1); height: @font-size-default + (@font-scale-factor * 4); } @@ -245,6 +238,7 @@ .hide-text-show-before(); .btn-hover(); + background-color: var(--color-shade-1); cursor: pointer; position: relative; line-height: 1; @@ -301,7 +295,7 @@ overflow: hidden; li.user { - color: @ini_background_site; + color: var(--color-background); bdi { position: absolute; @@ -311,8 +305,8 @@ &:before { transition: @transition background-color; - background-color: @ini_background_site; - color: @ini_nav_menu_color; + background-color: var(--color-shade-1); + color: var(--color-foreground); text-indent: 0; } } @@ -323,18 +317,18 @@ bdi { &:before { - background-color: @ini_nav_menu_hover_bg; - color: @ini_nav_menu_hover_color; + background-color: var(--color-shade-1); + color: var(--color-foreground); } } &:hover { - color: @ini_nav_menu_hover_color; + color: var(--color-glow-secondary); bdi { &:before { - background-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_bg; + background-color: transparent; + color: var(--color-glow-secondary); } } } diff --git a/css/area_recent.less b/css/area_recent.less index 78e97dd..9583da8 100644 --- a/css/area_recent.less +++ b/css/area_recent.less @@ -11,11 +11,13 @@ color: @color-editBox; &.positive { - background-color: #cfc; + background-color: var(--color-success); + color: var(--color-background); } &.negative { - background-color: #fdd; + background-color: var(--color-error); + color: var(--color-foreground); } } } @@ -67,11 +69,10 @@ .diffnav { a { - background-color: @ini_background_site; - border: solid 1px @ini_background_site; - border-radius: @ini_default_border_radius; - color: @ini_nav_menu_color; - transition: @transition background-color, @transition color, @transition border-color; + background-color: var(--color-background); + border: solid 1px var(--color-background); + border-radius: 0.5rem; + color: var(--color-foreground); &::before { background-color: inherit; @@ -82,9 +83,11 @@ &:hover, &:focus, &:active { - background-color: @ini_nav_menu_color; - border: solid 1px @ini_nav_menu_color; - color: @ini_background_site; + background-color: transparent; + border-color: var(--color-glow-primary); + color: var(--color-glow-primary); + transition: var(--transition-glow); + filter: var(--filter-glow-primary); &::before { background-color: inherit; @@ -95,10 +98,8 @@ } table.diff { - background-color: #fff; - border: solid 1px #fff; - border-top-width: 10px; - border-bottom-width: 10px; + background-color: var(--color-background); + border: none; &.diff_inline { border-top-width: 0; @@ -110,8 +111,8 @@ } th { - background-color: @ini_background; - color: @ini_text; + background-color: var(--color-background); + color: var(--color-foreground); padding-top: 10px; padding-bottom: 10px; @@ -121,30 +122,33 @@ } td { + background-color: transparent; + color: var(--color-text-1); + &.diff-blockheader { - background-color: #cfc; - color: @color-editBox; + background-color: transparent; + color: var(--color-foreground); } &.diff-context { - background-color: #eee; - color: @color-editBox; + background-color: transparent; + color: var(--color-text-1); } } .diff-addedline { - background-color: #cfc; - color: @color-editBox; + background-color: var(--color-success-highlight); + color: var(--color-foreground); strong { background-color: transparent; - color: #f00; + color: var(--color-success) !important; } } .diff-deletedline { - background-color: #fdd; - color: @color-editBox; + background-color: var(--color-error-highlight); + color: var(--color-foreground); * { color: inherit; @@ -152,8 +156,12 @@ strong { background-color: transparent; - color: #f00; + color: var(--color-error) !important; } } + + .diff-lineheader { + background-color: transparent; + } } } diff --git a/css/area_tabs.less b/css/area_tabs.less index 0912399..8b98f02 100644 --- a/css/area_tabs.less +++ b/css/area_tabs.less @@ -8,14 +8,22 @@ li:not([class~="active"]) { strong, a { - color: @ini_text_neu; transition: @transition background-color, @transition color; } + a { + background-color: var(--color-shade-2); + color: var(--color-accent-1); + } + strong { + background-color: var(--color-shade-3); + color: inherit; + } + a:hover, a:focus, a:active { - color: @ini_text; + color: var(--color-accent-3); } } } diff --git a/css/area_togglelink.less b/css/area_togglelink.less index 10a47bc..9a12b47 100755 --- a/css/area_togglelink.less +++ b/css/area_togglelink.less @@ -8,52 +8,44 @@ top: 0; bottom: -1px; width: 2rem; - left: -(@margin-default); + left: -(@margin-default + 0.25rem); @media @screen_max-md { display: none; } a { - .fontello-double(); - .icon-right-bold(); - .icon-left-bold(); - - .display-flex(); - .flex-direction(); - .justify-content(); + position: absolute; + inset: 0; width: @margin-default; height: 100%; - background-color: @ini_button_background; - border: solid 1px @ini_button_background; - border-radius: @ini_default_border_radius 0 0 @ini_default_border_radius; // @ini_default_border_radius vs. @fix_border-radius - color: @ini_button_color; + background-color: transparent; + border: solid 1px var(--color-shade-4); + border-right-style: none; + border-radius: 0.5rem 0 0 0.5rem; + color: var(--color-shade-4); text-decoration: none; transition: @transition color, @transition background-color, @transition border-color; - &::before, - &::after { - width: 100%; - opacity: .6; - font-size: 1rem; - line-height: 1; - text-align: center; - margin: 0; - transition: @transition opacity; - } - &::before { - opacity: 1; - font-size: 1.25rem; + content: ''; + display: block; + position: absolute; + inset: 0.3rem; + mask-size: contain; + mask-position: center; + mask-repeat: no-repeat; + background-color: currentColor; + mask-image: url('img/arrow_left.svg'); + } &:hover, &:focus, &:active { - background-color: @ini_button_color; - border-color: @ini_button_background; - color: @ini_button_background; + border-color: var(--color-glow-primary); + color: var(--color-glow-primary); text-decoration: none; * { @@ -61,43 +53,24 @@ text-decoration: none; } - &::after { - opacity: 0; - } + filter: var(--filter-glow-primary); + transition: var(--transition-glow); + } } /* + + + toggle out + + + */ + .wide-content & { left: 0; a { - background-color: @ini_button_background; - border-color: @ini_button_background; - border-radius: 0 @ini_default_border_radius @ini_default_border_radius 0; // @ini_default_border_radius vs. @fix_border-radius + border-radius: 0 0.5rem 0.5rem 0; + border-style: solid; + border-left-style: none; &::before { - opacity: .6; - font-size: 1rem; - } - - &::after { - opacity: 1; - font-size: 1.25rem; - } - - &:hover, - &:focus, - &:active { - background-color: @ini_button_color; - - &::before { - opacity: 0; - } - - &::after { - opacity: 1; - } + mask-image: url('img/arrow_right.svg'); } } } diff --git a/css/base.less b/css/base.less index 752d451..5b50fb6 100755 --- a/css/base.less +++ b/css/base.less @@ -5,10 +5,10 @@ /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ /* global vars */ /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ -@font_family_screen: arial, sans-serif; -@font_family_print: "Times New Roman", serif; +@font_family_screen: "Athiti", ui-sans, sans-serif; +@font_family_print: "Athiti", ui-sans, sans-serif; -@nav_direct_background: @ini_background; +@nav_direct_background: var(--color-background); @nav_direct_color: @ini_existing; @background_darker: rgba(230,230,230, .2); @@ -36,7 +36,7 @@ @box-shadow-bottom: 0 .1em .5em rgba(153,153,153,.5); // qc-wrapper (breadcrumb), struct inline-editor /* + + + for programmers customizing + + + */ -@fix_border-radius: 3px; // inputs, editbox (textarea), buttons, content, code, quicksearch, msg +@fix_border-radius: 0.5rem; // inputs, editbox (textarea), buttons, content, code, quicksearch, msg @toggle-showsidebar_width: 3.47rem; // shown sidebar after toggle @@ -66,7 +66,7 @@ /* edit mode */ @highlight-odd-ini_text: fade(@ini_background, 95%); @highlight-even-ini_text: fade(@ini_text, 5%); -@color-editBox: #252525; // editmode for tables, revision states +@color-editBox: var(--color-foreground); // editmode for tables, revision states //@nolinkedicon-ini_background: fade(@ini_background_site, 10%); //@opacity-ini_nav_menu_color: fade(@ini_nav_menu_color, 40%); @@ -170,6 +170,100 @@ +/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ +/* fonts */ +/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ + +@font-face { + font-family: "Athiti"; + font-weight: 700; + src: url("fonts/athiti/Athiti-Bold.woff2") format("woff2"); +} + +@font-face { + font-family: "Athiti"; + font-weight: 600; + src: url("fonts/athiti/Athiti-SemiBold.woff2") format("woff2"); +} + +@font-face { + font-family: "Athiti"; + font-weight: 500; + src: url("fonts/athiti/Athiti-Medium.woff2") format("woff2"); +} + +@font-face { + font-family: "Athiti"; + font-weight: 400; + src: url("fonts/athiti/Athiti-Regular.woff2") format("woff2"); +} + +@font-face { + font-family: "Athiti"; + font-weight: 300; + src: url("fonts/athiti/Athiti-Light.woff2") format("woff2"); +} + +@font-face { + font-family: "Athiti"; + font-weight: 200; + src: url("fonts/athiti/Athiti-ExtraLight.woff2") format("woff2"); +} + +@font-face { + font-family: "Departure Mono"; + src: url("fonts/departuremono/DepartureMono-Regular.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + font-weight: 100; + src: url("fonts/argonglow/ArgonGlow-Thin.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + font-weight: 200; + src: url("fonts/argonglow/ArgonGlow-ExtraLight.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + font-weight: 300; + src: url("fonts/argonglow/ArgonGlow-Light.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + font-weight: 400; + src: url("fonts/argonglow/ArgonGlow-Regular.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + font-weight: 500; + src: url("fonts/argonglow/ArgonGlow-Medium.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + font-weight: 600; + src: url("fonts/argonglow/ArgonGlow-SemiBold.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + font-weight: 700; + src: url("fonts/argonglow/ArgonGlow-Bold.woff2") format("woff2"); +} + +@font-face { + font-family: "Argon Glow"; + src: url("fonts/argonglow/ArgonGlow-VariableVF.woff2") format("woff2"); + font-weight: 100 900; +} + + /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ /* all media */ /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ @@ -288,11 +382,303 @@ nav > ul { } } +/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ +/* variables */ +/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ + +:root { + --color-neutral-50: #F2F0F5; + --color-neutral-100: #D1C6E0; + --color-neutral-200: #B2A0CB; + --color-neutral-300: #957EB5; + --color-neutral-400: #7A60A0; + --color-neutral-500: #61468B; + --color-neutral-600: #4B3176; + --color-neutral-700: #371F60; + --color-neutral-800: #26114B; + --color-neutral-900: #180736; + --color-neutral-950: #0C011F; + --color-argon-50: #E1ABC9; + --color-argon-100: #DA87B5; + --color-argon-200: #D464A1; + --color-argon-300: #CD448F; + --color-argon-400: #C6257D; + --color-argon-500: #B0166F; + --color-argon-600: #9A0A61; + --color-argon-700: #830755; + --color-argon-800: #6D0449; + --color-argon-900: #56023C; + --color-argon-950: #3F012D; + --color-krypton-50: #B2D9EA; + --color-krypton-100: #8CC9E4; + --color-krypton-200: #69BADE; + --color-krypton-300: #4BADD8; + --color-krypton-400: #2493C2; + --color-krypton-500: #167FAC; + --color-krypton-600: #0A6C96; + --color-krypton-700: #075C81; + --color-krypton-800: #044C6B; + --color-krypton-900: #023C55; + --color-krypton-950: #012C3F; + --color-green-50: #C0F49A; + --color-green-100: #A7E57A; + --color-green-200: #8FD75D; + --color-green-300: #7AC843; + --color-green-400: #66B92D; + --color-green-500: #54AA18; + --color-green-600: #47990F; + --color-green-700: #397E0A; + --color-green-800: #2B6206; + --color-green-900: #1F4703; + --color-green-950: #122B01; + --color-red-50: #E6AFAF; + --color-red-100: #DD9090; + --color-red-200: #D57272; + --color-red-300: #CC5757; + --color-red-400: #C33D3D; + --color-red-500: #BB2626; + --color-red-600: #B21010; + --color-red-700: #950808; + --color-red-800: #780404; + --color-red-900: #5C0202; + --color-red-950: #3F0101; + + --color-white: #FFFFFF; + + --color-dark-foreground: var(--color-neutral-50); + --color-dark-background: var(--color-neutral-950); + --color-dark-shade-1: var(--color-neutral-900); + --color-dark-shade-2: var(--color-neutral-800); + --color-dark-shade-3: var(--color-neutral-700); + --color-dark-shade-4: var(--color-neutral-600); + --color-dark-text-1: var(--color-neutral-200); + --color-dark-text-2: var(--color-neutral-300); + --color-dark-text-3: var(--color-neutral-400); + --color-dark-text-4: var(--color-neutral-500); + --color-dark-primary: var(--color-argon-400); + --color-dark-secondary: var(--color-krypton-300); + --color-dark-error: var(--color-red-500); + --color-dark-error-highlight: var(--color-red-950); + --color-dark-success: var(--color-green-500); + --color-dark-success-highlight: var(--color-green-950); + --color-dark-warning: #efb100; + --color-dark-highlight: #efb10060; + --color-dark-accent-1: #60a5f9; + --color-dark-accent-2: #d381f7; + --color-dark-accent-3: #ff7975; + + --color-light-foreground: var(--color-neutral-950); + --color-light-background: var(--color-neutral-50); + --color-light-shade-1: var(--color-neutral-100); + --color-light-shade-2: var(--color-neutral-200); + --color-light-shade-3: var(--color-neutral-300); + --color-light-shade-4: var(--color-neutral-400); + --color-light-text-1: var(--color-neutral-800); + --color-light-text-2: var(--color-neutral-700); + --color-light-text-3: var(--color-neutral-600); + --color-light-text-4: var(--color-neutral-500); + --color-light-primary: var(--color-argon-600); + --color-light-secondary: var(--color-krypton-500); + --color-light-error: var(--color-red-600); + --color-light-error-highlight: var(--color-red-50); + --color-light-success: var(--color-green-600); + --color-light-success-highlight: var(--color-green-50); + --color-light-warning: #d08700; + --color-light-highlight: #d0870060; + --color-light-accent-1: #303EC0; + --color-light-accent-2: #6c366c; + --color-light-accent-3: #932f0a; + + --color-cmyk-primary: var(--color-dark-primary); + --color-cmyk-secondary: var(--color-dark-secondary); + + --text-xs: 0.75rem; + --text-sm: 0.875rem; + --text-base: 1rem; + --text-lg: 1.125rem; + --text-xl: 1.25rem; + --text-2xl: 1.5rem; + --text-3xl: 1.875rem; + --text-4xl: 2.25rem; + --text-5xl: 3rem; + + --container-3xs: 16rem; + --container-2xs: 18rem; + --container-xs: 20rem; + --container-sm: 24rem; + --container-md: 28rem; + --container-lg: 32rem; + --container-xl: 36rem; + --container-2xl: 42rem; + --container-3xl: 48rem; + --container-4xl: 56rem; + --container-5xl: 64rem; + --container-6xl: 72rem; + --container-7xl: 80rem; +} + +.fnButton { + border-radius: 0.5rem; + background-color: var(--color-shade-1); + transition: background-color 150ms; + color: var(--color-foreground); + font-size: 1.2em; + border: solid 0.1em var(--color-shade-1); + transition-property: filter, border-color; + transition-duration: 200ms; + transition-timing-function: ease-out; + + &:hover, &.active{ + .fnActiveButton(); + } +} + +.fnButtonSecondary { + &:hover, &.active{ + .fnActiveButtonSecondary(); + } +} + +.fnActiveButton { + background-color: transparent; + border: solid 0.1em var(--color-glow-primary); + text-decoration: none; + color: var(--color-glow-primary); + filter: var(--filter-glow-primary); + transition: var(--transition-glow); +} + +.fnActiveButtonSecondary { + background-color: transparent; + border: solid 0.1em var(--color-glow-secondary); + text-decoration: none; + color: var(--color-glow-secondary); + filter: var(--filter-glow-secondary); + transition: var(--transition-glow); +} + + /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ /* screen only */ /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */ @media screen { + + .dark { + + --color-foreground: var(--color-dark-foreground); + --color-background: var(--color-dark-background); + --color-shade-1: var(--color-dark-shade-1); + --color-shade-2: var(--color-dark-shade-2); + --color-shade-3: var(--color-dark-shade-3); + --color-shade-4: var(--color-dark-shade-4); + --color-text-1: var(--color-dark-text-1); + --color-text-2: var(--color-dark-text-2); + --color-text-3: var(--color-dark-text-3); + --color-text-4: var(--color-dark-text-4); + --color-primary: var(--color-dark-primary); + --color-secondary: var(--color-dark-secondary); + --color-error: var(--color-dark-error); + --color-error-highlight: var(--color-dark-error-highlight); + --color-success: var(--color-dark-success); + --color-success-highlight: var(--color-dark-success-highlight); + --color-warning: var(--color-dark-warning); + --color-highlight: var(--color-dark-highlight); + --color-accent-1: var(--color-dark-accent-1); + --color-accent-2: var(--color-dark-accent-2); + --color-accent-3: var(--color-dark-accent-3); + + --filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary)); + --filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary)); + --color-glow-primary: var(--color-white); + --color-glow-secondary: var(--color-white); + --transition-glow: filter 150ms cubic-bezier(0,1.7,1,-0.3) 50ms, + border-color 150ms cubic-bezier(0,1.7,1,-0.3) 50ms; + + @media (prefers-reduced-motion) { + --transition-glow: filter 150ms, border-color 150ms; + } + + .light-only { + display: none; + } + + .dark-only { + display: initial; + } + } + + .light { + --color-foreground: var(--color-light-foreground); + --color-background: var(--color-light-background); + --color-shade-1: var(--color-light-shade-1); + --color-shade-2: var(--color-light-shade-2); + --color-shade-3: var(--color-light-shade-3); + --color-shade-4: var(--color-light-shade-4); + --color-text-1: var(--color-light-text-1); + --color-text-2: var(--color-light-text-2); + --color-text-3: var(--color-light-text-3); + --color-text-4: var(--color-light-text-4); + --color-primary: var(--color-light-primary); + --color-secondary: var(--color-light-secondary); + --color-error: var(--color-light-error); + --color-error-highlight: var(--color-light-error-highlight); + --color-success: var(--color-light-success); + --color-success-highlight: var(--color-light-success-highlight); + --color-warning: var(--color-light-warning); + --color-highlight: var(--color-light-highlight); + --color-accent-1: var(--color-light-accent-1); + --color-accent-2: var(--color-light-accent-2); + --color-accent-3: var(--color-light-accent-3); + + --filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-argon-400)); + --filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400)); + --color-glow-primary: var(--color-argon-950); + --color-glow-secondary: var(--color-krypton-950); + --transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms, + border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms; + + @media (prefers-reduced-motion) { + --transition-glow: filter 150ms, border-color 150ms; + } + + .light-only { + display: initial; + } + + .dark-only { + display: none; + } + } + + @media (prefers-color-scheme: dark) { + html { + .dark(); + + &:has(#themeLight:checked) { + .light(); + } + } + #themeToggleDark { + display: none !important; + } + } + + @media (prefers-color-scheme: light) { + html { + .light(); + + &:has(#themeDark:checked) { + .dark(); + } + } + #themeToggleLight { + display: none !important; + } + } + + + html { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; @@ -321,9 +707,28 @@ nav > ul { display: none; } - a:active, - a:hover { - outline: 0; + a { + color: var(--color-accent-1); + text-decoration: underline; + + &:hover, + &:active, + &:focus { + color: var(--color-accent-3); + text-decoration: none; + } + + &:visited { + color: var(--color-accent-2); + text-decoration: underline; + + &:hover, + &:active, + &:focus { + color: var(--color-accent-3); + text-decoration: none; + } + } } abbr[title] { @@ -351,7 +756,7 @@ nav > ul { kbd, pre, samp { - font-family: monospace, monospace; + font-family: "Departure Mono", ui-monospace, monospace; font-size: 1em; } @@ -420,7 +825,7 @@ nav > ul { html, body { font-family: @font_family_screen; - color: @ini_text; + color: var(--color-foreground); } } diff --git a/css/base_design.less b/css/base_design.less index a04049a..2dfc1f1 100755 --- a/css/base_design.less +++ b/css/base_design.less @@ -5,7 +5,7 @@ html, body { - background-color: @ini_background_site; + background-color: var(--color-background); } /* highlight selected tool */ @@ -23,10 +23,23 @@ html, body { } .dokuwiki { + .tabs > ul li a, + ul.tabs li strong, + ul.tabs li a { + border-color: var(--color-shade-4); + } + ul.tabs::after { + border-color: var(--color-shade-4); + } + .page ol li, .page ul li, .aside ul li { - color: @ini_text; + color: var(--color-foreground); + + .li { + color: var(--color-foreground); + } } .pageId { @@ -41,7 +54,7 @@ html, body { font-size: @font-size-small; border: solid @ini_background_alt; border-width: 1px 1px 0; - background-color: @ini_background_site; + background-color: var(--color-background); color: @ini_text_alt; padding: .1em .35em; border-top-left-radius: 2px; @@ -55,7 +68,7 @@ html, body { clear: both; overflow: hidden; word-wrap: break-word; - background: @ini_background; + background: var(--color-background); color: inherit; padding: @page_padding-top @margin-default @margin-default; @@ -84,6 +97,7 @@ html, body { } /* license note under edit window */ + div.license { font-size: @font-size-small; line-height: @line-height-default; @@ -153,64 +167,24 @@ h2 { font-size: @font-size-head2; margin: 0 0 @font-size-head2; padding-top: (@font-size-head2 / 2); - - .secedit + &, - div[class^="level"] + &, - .section_highlight &:first-child { - padding-top: 0; - } - - .section_highlight + & { - padding-top: (@font-size-head2 / 2); - } } h3 { font-size: @font-size-head3; margin: 0 0 @font-size-head3; padding-top: (@font-size-head3 / 2); - - .secedit + &, - div[class^="level"] + &, - .section_highlight &:first-child { - padding-top: 0; - } - - .section_highlight + & { - padding-top: (@font-size-head3 / 2); - } } h4 { font-size: @font-size-head4; margin: 0 0 @font-size-head4; padding-top: (@font-size-head4 / 2); - - .secedit + &, - div[class^="level"] + &, - .section_highlight &:first-child { - padding-top: 0; - } - - .section_highlight + & { - padding-top: (@font-size-head4 / 2); - } } h5 { font-size: @font-size-head5; margin: 0 0 @font-size-head5; padding-top: (@font-size-head5 / 2); - - .secedit + &, - div[class^="level"] + &, - .section_highlight &:first-child { - padding-top: 0; - } - - .section_highlight + & { - padding-top: (@font-size-head5 / 2); - } } h6 { @@ -218,16 +192,6 @@ h6 { font-weight: @font-weight-bold; margin: 0 0 @font-size-head6; padding-top: (@font-size-head6 / 2); - - .secedit + &, - div[class^="level"] + &, - .section_highlight &:first-child { - padding-top: 0; - } - - .section_highlight + & { - padding-top: (@font-size-head6 / 2); - } } p { @@ -424,16 +388,11 @@ ol ol ol ol ol { .dokuwiki { table.inline tr:hover { th { - background-color: fade(@ini_background_alt, 50%); + background-color: var(--color-shade-3); } td { - background-color: fade(@ini_background_alt, 80%); - color: @ini_text_alt; - - *:not(button,a) { - color: @ini_text_alt; - } + background-color: var(--color-shade-2); } } } @@ -442,7 +401,7 @@ table { border-collapse: collapse; empty-cells: show; border-spacing: 0; - border: 1px solid @ini_border; + border: 1px solid var(--color-shade-4); font-size: @font-size-default; line-height: 140%; } @@ -461,13 +420,13 @@ td { padding: .3em .5em; margin: 0; vertical-align: top; - border: 1px solid @ini_border; + border: 1px solid var(--color-shade-4); } th { font-weight: bold; - background-color: @ini_background_alt; - color: @ini_text_alt; + background-color: var(--color-shade-1); + color: var(--color-foreground); text-align: left; a { @@ -479,22 +438,6 @@ th { text-align: right; } -a { - outline: none; - - &:link, - &:visited { - text-decoration: none; - color: @ini_link; // links to non wikipages (external links) - } - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } -} - img { display: inline-block; border-width: 0; @@ -520,7 +463,7 @@ button img { hr { border-top: solid @ini_border; - border-bottom: solid @ini_background_site; + border-bottom: solid var(--color-background); border-width: 1px 0; height: 0; text-align: center; @@ -548,14 +491,13 @@ pre, code, samp, kbd { - font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace; + font-family: "Departure Mono", ui-monospace, monospace; /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */ font-size: @font-size-default; direction: ltr; text-align: left; - background-color: @code-background; - color: @noopentasks-color; - box-shadow: inset 0 0 .3em @noopentasks-border; + background-color: var(--color-shade-1); + color: var(--color-foreground); border-radius: @fix_border-radius; padding-left: @small-spacing; padding-right: @small-spacing; @@ -568,26 +510,11 @@ kbd { span { color: inherit; } - - a { - &:link, - &:visited { - color: inherit; - text-decoration: underline; - } - - &:hover, - &:focus, - &:active { - text-decoration: none; - } - } } pre { overflow: auto; word-wrap: normal; - border: 1px solid @noopentasks-border; font-size: @font-size-default; line-height: 140%; padding: .7em 1em; diff --git a/css/base_mixins.less b/css/base_mixins.less index 6d3b840..e664bf3 100755 --- a/css/base_mixins.less +++ b/css/base_mixins.less @@ -136,16 +136,18 @@ /* + + + + + small icon-buttons (breadcrumb, page-header) + + + + + */ .btn-hover { - background-color: @ini_nav_menu_hover_bg; - color: @ini_nav_menu_hover_color; - transition: @transition color, @transition background-color, @transition border-color; + background-color: var(--color-shade-1); + border-color: var(--color-shade-2); + color: var(--color-foreground); + transition: var(--transition-glow); &:hover, &:active, &:focus { - background-color: @ini_nav_menu_hover_color; - border-color: @ini_nav_menu_hover_color; - color: @ini_nav_menu_hover_bg; + background-color: transparent; + border-color: var(--color-glow-secondary); + color: var(--color-glow-secondary); + filter: var(--filter-glow-secondary); .prefix { color: inherit; diff --git a/css/icons.less b/css/icons.less new file mode 100644 index 0000000..cc0087d --- /dev/null +++ b/css/icons.less @@ -0,0 +1,60 @@ + +i[data-icon] { + display: inline-block; + width: 1em; + height: 1em; + flex-shrink: 0; + position: relative; + box-sizing: content-box; + + &::before { + content: ''; + display: block; + width: 100%; + height: 100%; + mask-size: contain; + mask-position: center; + mask-repeat: no-repeat; + background-color: currentColor; + } + + &[data-icon='arrow-left']::before { + mask-image: url('img/arrow_left.svg'); + } + + &[data-icon='arrow-up']::before { + mask-image: url('img/arrow_up.svg'); + } + + &[data-icon='arrow-right']::before { + mask-image: url('img/arrow_right.svg'); + } + + &[data-icon='arrow-down']::before { + mask-image: url('img/arrow_down.svg'); + } + + &[data-icon='info']::before { + mask-image: url('img/info.svg'); + } + + &[data-icon='home']::before { + mask-image: url('img/home.svg'); + } + + &[data-icon='menu-small']::before { + mask-image: url('img/menu_small.svg'); + } + + &[data-icon='light']::before { + mask-image: url('img/lightbulb.svg'); + } + + &[data-icon='warning']::before { + mask-image: url('img/warning.svg'); + } + + &[data-icon='creature']::before { + mask-image: url('img/creature.svg'); + } +} \ No newline at end of file diff --git a/css/plugins/configmanager.less b/css/plugins/configmanager.less index 903e7ca..972744d 100644 --- a/css/plugins/configmanager.less +++ b/css/plugins/configmanager.less @@ -9,9 +9,10 @@ min-width: 100%; overflow-x: auto; box-sizing: border-box; - background-color: @background_darker; + background-color: var(--color-background); margin-left: 0; margin-right: 0; + color: var(--color-foreground) } .selectiondefault { @@ -20,11 +21,24 @@ } tr { + a { + color: var(--color-shade-4); + } + .input { background-color: transparent; color: inherit; } + input, select, textarea { + background-color: var(--color-background); + color: var(--color-foreground); + } + + select.edit { + padding: 0 0.3em; + } + &:hover { td { color: inherit; @@ -36,13 +50,17 @@ .input { background-color: transparent; } + + input, select, textarea { + background-color: var(--color-shade-1); + } } td.label { padding: .8em 0 1.2em 1em; span.outkey { - background-color: @ini_background; + background-color: var(--color-background); color: inherit; font-size: (@font-size-small - .06); font-weight: bold; diff --git a/css/plugins/data.less b/css/plugins/data.less index 28d238c..561c488 100644 --- a/css/plugins/data.less +++ b/css/plugins/data.less @@ -23,7 +23,7 @@ button { min-height: 1rem; height: 1.8em; - background-color: @ini_background; + background-color: var(--color-background); border-top: solid 1px @ini_button_background; border-color: @ini_border; border-radius: 0 0 @fix_border-radius @fix_border-radius; @@ -40,7 +40,7 @@ &:active { background-color: @ini_existing; border-color: @ini_existing; - color: @ini_background; + color: var(--color-background); } } } diff --git a/css/plugins/do_tasks.less b/css/plugins/do_tasks.less index 8a43015..2fa828b 100755 --- a/css/plugins/do_tasks.less +++ b/css/plugins/do_tasks.less @@ -2,27 +2,6 @@ * This file provides styles for do-task plugin */ -/* + + + + + global + + + + + */ -ul.page-attributes { - .plugin_do_pagetasks { - position: relative; - border-radius: @ini_default_border_radius; // @ini_default_border_radius vs. @fix_border-radius - - strong { - overflow: hidden; - background-color: @ini_background_site; - border-color: @noopentasks-border; - color: @ini_text_webframe; - } - - &.do_none { - .num { - background-color: @noopentasks-border; // fix - color: @noopentasks-color; // fix - } - } - } -} /* + + + + + usertool icon in header + + + + + */ #dokuwiki__usertools.nav-usertools { @@ -74,7 +53,7 @@ ul.page-attributes { .noopentasks { span { - background-color: @ini_background_site; + background-color: var(--color-background); border-color: @noopentasks-border; color: @ini_text_webframe; } @@ -107,7 +86,7 @@ ul.page-attributes { } table.inline { - background-color: #FFF; + background-color: var(--color-background); margin-top: .5rem; @media @screen_max-sm { diff --git a/css/plugins/edit.less b/css/plugins/edit.less index 2ed6f52..b3092d7 100644 --- a/css/plugins/edit.less +++ b/css/plugins/edit.less @@ -7,15 +7,12 @@ #dokuwiki__content { div.section_highlight { clear: right; - background: repeating-linear-gradient( - -45deg, - @highlight-odd-ini_text, - @highlight-odd-ini_text 10px, - @highlight-even-ini_text 10px, - @highlight-even-ini_text 20px, - ); - border-color: @ini_background_page_header; - padding-top: 0 !important; // heredity + background: repeating-linear-gradient(-45deg, + var(--color-shade-1), + var(--color-shade-1) 10px, + var(--color-background) 10px, + var(--color-background) 20px,); + border-color: var(--color-background); } // "section edit button" and "editbutton_table edit button" @@ -24,11 +21,23 @@ font-size: 100%; margin-top: .5rem; margin-bottom: .5rem; + + &::after { + + } + + &:hover { + &::after { + border: none; + } + } } div.editBox { - background-color: #FFF; - border: solid 2px #FFF; + background-color: var(--color-background); + border: solid 2px var(--color-shade-4); + border-radius: @fix_border-radius; + padding: 0.5rem; .editButtons { display: inline-block; @@ -41,11 +50,13 @@ white-space: normal; display: block; width: 100%; + span { display: inline-block; padding-bottom: .4rem; } - input#edit__summary{ + + input#edit__summary { max-width: 100%; box-sizing: border-box; } diff --git a/css/plugins/edittable.less b/css/plugins/edittable.less index f67dfe6..144270b 100644 --- a/css/plugins/edittable.less +++ b/css/plugins/edittable.less @@ -4,6 +4,29 @@ /* + + + + + global + + + + + */ #dokuwiki__content.main-content { + #edittable__editor { + th, + .handsontable th { + border-color: var(--color-shade-4); + background-color: var(--color-shade-1); + color: var(--color-foreground); + + &.ht__highlight { + background-color: var(--color-shade-2); + } + } + + td { + border-color: var(--color-shade-4); + background-color: var(--color-background); + color: var(--color-foreground); + + &.current { + background-color: var(--color-shade-1); + } + } + } + div.editbutton_table { position: relative; // for IE float: left; @@ -13,22 +36,24 @@ button, input.button { min-height: 1rem; - background-color: @ini_background; - border-top: solid 1px @ini_button_background; - border-color: @ini_border; - border-radius: 0 0 @fix_border-radius @fix_border-radius; - color: @ini_existing; + background-color: var(--color-shade-1); + border: solid 0.1em var(--color-shade-2); + border-radius: 0.5rem; + color: var(--color-foreground); font-size: @font-size-small; - margin-top: -1px; // for best position of edit-tab beneath table - padding-right: .3em; - transition: @transition background-color, @transition border-color, @transition color; + margin: 0; + margin-top: 0.5rem; + padding: 0.2rem 0.4rem; + height: auto; &:hover, &:focus, &:active { - background-color: @ini_existing; - border-color: @ini_existing; - color: @ini_background; + background-color: transparent; + color: var(--color-glow-primary); + border-color: var(--color-glow-primary); + transition: var(--transition-glow); + filter: var(--filter-glow-primary); } } } diff --git a/css/plugins/extension__manager.less b/css/plugins/extension__manager.less index eae01b4..1199b74 100644 --- a/css/plugins/extension__manager.less +++ b/css/plugins/extension__manager.less @@ -3,15 +3,64 @@ */ /* + + + + + global + + + + + */ -.dokuwiki #extension__manager { - .actions { - font-size: 0; +.dokuwiki { + #extension__manager { + .actions { + font-size: 0; - > button { - font-size: .92rem; - margin-left: .3rem; - padding-left: .3rem; - padding-right: .3rem; + > button { + font-size: .92rem; + margin-left: .3rem; + padding-left: .3rem; + padding-right: .3rem; + } + + p.permerror { + @media @screen_max-md { + flex-direction: column; + } + + display: flex; + align-items: start; + gap: 0.5rem; + background: none; + + &::before { + content: ""; + flex-shrink: 0; + margin-top: 0.3em; + width: 1em; + height: 1em; + mask-size: contain; + mask-position: center top; + mask-repeat: no-repeat; + mask-image: url(img/warning.svg); + background-color: var(--color-warning); + } + } + } + + ul.tabs { + li.active { + a { + background-color: var(--color-shade-3); + color: var(--color-foreground); + border-color: var(--color-shade-4); + } + } + } + + .panelHeader { + background-color: var(--color-shade-2); + } + } + + #extension__list { + .extensionList { + + li { + color: var(--color-foreground); + } } } } diff --git a/css/plugins/fastwiki.less b/css/plugins/fastwiki.less new file mode 100644 index 0000000..c8f3016 --- /dev/null +++ b/css/plugins/fastwiki.less @@ -0,0 +1,7 @@ +/** + * This file provides styles for "fastwiki" plugin + */ + +.mode_edit .content .row > .col-xs-12 #dokuwiki__content::before { + display: none; +} diff --git a/css/plugins/include.less b/css/plugins/include.less deleted file mode 100644 index d9381ab..0000000 --- a/css/plugins/include.less +++ /dev/null @@ -1,31 +0,0 @@ -/** - * This file provides the main design styles - * across all template elements (typo, colors etc.) - */ - -#dokuwiki__content .plugin_include_content { - > h1, - > .section_highlight h1 { - padding-top: @font-size-head1; - } - > h2, - > .section_highlight h2 { - padding-top: @font-size-head2; - } - > h3, - > .section_highlight h3 { - padding-top: @font-size-head3; - } - > h4, - > .section_highlight h4 { - padding-top: @font-size-head4; - } - > h5, - > .section_highlight h5 { - padding-top: @font-size-head5; - } - > h6, - > .section_highlight h6 { - padding-top: @font-size-head6; - } -} diff --git a/css/plugins/magic-matcher.less b/css/plugins/magic-matcher.less index fee9b2e..865897f 100755 --- a/css/plugins/magic-matcher.less +++ b/css/plugins/magic-matcher.less @@ -50,7 +50,7 @@ min-height: @height-context-bar; box-sizing: border-box; box-shadow: @box-shadow; - background-color: @ini_background; + background-color: var(--color-background); border-radius: 0 0 @ini_default_border_radius @ini_default_border_radius; font-size: @font-size-default; padding: .8em 1em .5em; diff --git a/css/plugins/mediamanager.less b/css/plugins/mediamanager.less index d7384d6..e591949 100644 --- a/css/plugins/mediamanager.less +++ b/css/plugins/mediamanager.less @@ -4,10 +4,18 @@ /* + + + + + global + + + + + */ #mediamanager__page { - .namespaces h2 { - bottom: 0; - line-height: 100%; - margin-bottom: -1px; + .namespaces{ + h2 { + bottom: 0; + line-height: 100%; + margin-bottom: -1px; + background-color: var(--color-shade-3); + color: var(--color-foreground); + border-color: var(--color-shade-4); + } + .panelHeader { + border-color: var(--color-shade-4); + } } #media__tree ul li img { @@ -23,6 +31,32 @@ margin-left: 0; } } + + .panelHeader { + background-color: var(--color-shade-2); + } + + .filelist .panelContent ul li{ + background-color: var(--color-shade-2); + color: var(--color-foreground); + + &:hover { + background-color: var(--color-shade-4); + border: none; + } + } + + .file dl { + dt{ + background-color: var(--color-shade-2); + padding: 0.2em; + } + + dd{ + background-color: var(--color-shade-1); + padding: 0.2em; + } + } } /* + + + + + + + + + + + + + + + + + + + + + + + + + + */ diff --git a/css/plugins/qc.less b/css/plugins/qc.less index b08d756..c26c734 100644 --- a/css/plugins/qc.less +++ b/css/plugins/qc.less @@ -2,30 +2,6 @@ * Styles for the QC plugin */ -/* + + + + + icon in breadcrumb + + + + + */ -.page-attributes .plugin_qc { - .qc_icon { - margin: 0; - - svg { - margin-top: .1em; - width: 1.6em; - height: 1.6em; - font-size: (@font-size-small - .06); - } - } - - a { - &:hover, - &:focus, - &:active { - svg path { - fill: @ini_nav_menu_hover_bg; - } - } - } -} - /* + + + + + slideout output + + + + + */ .qc-output { position: relative; diff --git a/css/plugins/quicksubscribe.less b/css/plugins/quicksubscribe.less deleted file mode 100644 index afc1b60..0000000 --- a/css/plugins/quicksubscribe.less +++ /dev/null @@ -1,24 +0,0 @@ -/** - * This file provides styles for the quicksubscribe plugin - */ - -.page-attributes { - li.plugin_quicksubscribe { - a.plugin_qsub_subscribe { - svg { - width: 1.6em; - height: 1.6em; - font-size: 0.82rem; - fill: @ini_nav_menu_hover_color; - } - } - - a:hover, - a:focus, - a:active { - svg { - fill: @ini_nav_menu_hover_bg; - } - } - } -} diff --git a/css/plugins/starred.less b/css/plugins/starred.less index f0ff348..26426d6 100644 --- a/css/plugins/starred.less +++ b/css/plugins/starred.less @@ -1,41 +1,10 @@ /** * This file provides styles for starred plugin */ - -.page-attributes { - li.plugin_starred { - .starred { - display: block; - padding-top: .05rem; - - svg { - width: 1.6em; - height: 1.6em; - font-size: 0.82rem; - fill: @ini_nav_menu_hover_color; - } - } - - a:hover, - a:focus, - a:active { - .starred svg { - fill: @ini_nav_menu_hover_bg; - } - } - } -} - nav.nav-starred { - margin-top: @nav-margin; - ul { list-style: none; - &#sidebar-menu-starred { - margin-left: 0; - } - li { margin-left: 0; diff --git a/css/plugins/struct.less b/css/plugins/struct.less index f6b62ad..6742bf3 100755 --- a/css/plugins/struct.less +++ b/css/plugins/struct.less @@ -69,7 +69,7 @@ background-color: @ini_existing; background-image: url("svg.php?svg=file-export.svg&f=background"); border-color: @ini_existing; - //color: @ini_background; + //color: var(--color-background); text-decoration: none; } } diff --git a/css/plugins/tabinclude.less b/css/plugins/tabinclude.less index 42994f5..b8ef834 100644 --- a/css/plugins/tabinclude.less +++ b/css/plugins/tabinclude.less @@ -32,7 +32,7 @@ div#dwpl-ti-container { &.selected { position: relative; - background-color: @ini_background; + background-color: var(--color-background); color: @ini_text; } } @@ -43,7 +43,7 @@ div#dwpl-ti-container { position: relative; overflow: auto; box-shadow: @box-shadow; - background-color: @ini_background; + background-color: var(--color-background); border: solid 1px @ini_border; border-radius: 0; margin-top: -1px; diff --git a/css/plugins/tablelayout.less b/css/plugins/tablelayout.less index 9aa6149..9e69a36 100644 --- a/css/plugins/tablelayout.less +++ b/css/plugins/tablelayout.less @@ -8,7 +8,7 @@ #dokuwiki__content.main-content .secedit.editbutton_table{ a.button.print { min-height: 1rem; - background-color: @ini_background; + background-color: var(--color-background); border-radius: 0 @ini_default_border_radius; border-top: solid 1px; border-color: @ini_border; diff --git a/css/plugins/tplinc.less b/css/plugins/tplinc.less new file mode 100644 index 0000000..986b145 --- /dev/null +++ b/css/plugins/tplinc.less @@ -0,0 +1,6 @@ +.wide-content { + .sidebarheader, + .sidebarfooter { + visibility: hidden; + } +} diff --git a/css/plugins/translation.less b/css/plugins/translation.less new file mode 100644 index 0000000..eb6a464 --- /dev/null +++ b/css/plugins/translation.less @@ -0,0 +1,57 @@ +/** + * This file provides styles for the translation plugin + */ +@import "../base"; + + +.dokuwiki div.plugin_translation { + clear: none; + display: block; + position: relative; + float: none; + + box-sizing: border-box; + width: 100%; + padding-bottom: 0.5rem; + height: 4rem; + + + * { + clear: both; + padding-top: 1em; // as h1 + } + + ul li { + margin-top: 0; + + // active language + span.wikilink1 { + .fnButton(); + .fnActiveButton(); + cursor: default; + } + + a.wikilink1{ + .fnButton(); + } + + span.wikilink2{ + .fnButton(); + .fnButtonSecondary(); + .fnActiveButtonSecondary() + } + + a.wikilink2, + a.wikilink2:visited{ + .fnButton(); + .fnButtonSecondary(); + background-color: var(--color-shade-4); + } + } +} + +@media @screen_max-md { + .dokuwiki div.plugin_translation { + clear: both; + margin-top: 1rem; + } +} diff --git a/css/plugins/wrap.less b/css/plugins/wrap.less new file mode 100644 index 0000000..0c0948c --- /dev/null +++ b/css/plugins/wrap.less @@ -0,0 +1,119 @@ +.dokuwiki { + span.wrap_em { + color: var(--color-error); + } + + span.wrap_hi { + background-color: var(--color-highlight); + color: var(--color-foreground); + } + + span.wrap_lo { + color: var(--color-text-2); + } + + div.plugin_wrap { + &.wrap_box { + background-color: var(--color-shade-1); + color: var(--color-foreground); + } + + &.wrap_info, + &.wrap_tip, + &.wrap_important, + &.wrap_alert, + &.wrap_help, + &.wrap_download, + &.wrap_todo { + @media @screen_max-md { + flex-direction: column; + } + + display: flex; + align-items: start; + gap: 1rem; + border: none; + border-left: solid 0.5rem var(--color-shade-4); + border-radius: 0.5rem; + padding: 1em; + background-image: none; + background-color: var(--color-shade-1); + + &::before { + content: ""; + flex-shrink: 0; + margin-top: 0.3em; + width: 2em; + height: 2em; + mask-size: contain; + mask-position: center top; + mask-repeat: no-repeat; + background-color: currentColor; + } + } + + &.wrap_info { + color: var(--color-foreground); + + &::before { + mask-image: url(img/info.svg); + } + } + + &.wrap_tip { + color: var(--color-foreground); + + &::before { + mask-image: url(img/lightbulb.svg); + } + } + + &.wrap_important { + border-left-color: var(--color-warning); + color: var(--color-foreground); + + &::before { + background-color: var(--color-warning); + mask-image: url(img/warning.svg); + } + } + + &.wrap_alert { + border-left-color: var(--color-error); + color: var(--color-foreground); + + &::before { + background-color: var(--color-error); + mask-image: url(img/power.svg); + } + } + + &.wrap_help { + border-left-color: var(--color-accent-1); + color: var(--color-foreground); + + &::before { + background-color: var(--color-accent-1); + mask-image: url(img/question.svg); + } + } + + &.wrap_download { + border-left-color: var(--color-success); + color: var(--color-foreground); + + &::before { + background-color: var(--color-success); + mask-image: url(img/arrow_down.svg); + } + } + + &.wrap_todo { + color: var(--color-foreground); + + &::before { + mask-image: url(img/tick_small.svg); + } + } + } +} diff --git a/css/print.less b/css/print.less index 96d0157..1c475ac 100755 --- a/css/print.less +++ b/css/print.less @@ -48,6 +48,12 @@ a:visited { padding: 20pt 20pt 0; } +#dokuwiki__header .logo img { + height: 4rem; + width: auto; +} + + /* + + + + + + + + + + + + + + */ /* + + + + + admin + + + + + */ diff --git a/css/template_admin.less b/css/template_admin.less index b912bc2..f085a35 100644 --- a/css/template_admin.less +++ b/css/template_admin.less @@ -49,7 +49,7 @@ svg { width: 26px; height: 26px; - border: solid 1px @ini_background; + border: solid 1px var(--color-background); border-radius: @ini_default_border_radius; fill: @ini_existing; transition: @transition background-color, @transition border-color, @transition fill; @@ -68,10 +68,10 @@ svg { background-color: @ini_existing; border-color: @ini_existing; - fill: @ini_background; + fill: var(--color-background); path { - fill: @ini_background; + fill: var(--color-background); } } } diff --git a/css/template_detail.less b/css/template_detail.less index f425221..0e06a5a 100644 --- a/css/template_detail.less +++ b/css/template_detail.less @@ -15,7 +15,7 @@ left: 0; display: inline-block; max-width: 100%; - color: @ini_button_color; + color: var(--color-foreground); margin: 0 auto 1.4em; &::before { @@ -25,7 +25,7 @@ display: block; width: 100%; box-sizing: border-box; - background: @ini_button_background; + background: var(--color-background); line-height: @line-height-default; padding: @margin-small; } @@ -33,7 +33,7 @@ img { margin: 0; display: block; - border: 1px dotted @ini_background_site; + border: solid 0.1rem transparent; position: relative; } @@ -44,10 +44,13 @@ &::before { content: attr(title); + border: solid 0.1rem var(--color-glow-primary); + transition: var(--transition-glow); + filter: var(--filter-glow-primary); } img { - border: 1px solid @ini_button_background; + border: solid 0.1rem var(--color-shade-4); } } } @@ -59,10 +62,10 @@ div.img_detail { @media screen { /* vertical minus margin of .img-detail corresponds to the padding of .page */ - background-color: @ini_background_page_header; - border: solid @ini_border_light; - border-width: 1px 0; + background-color: var(--color-shade-1); + border: solid 0.1em var(--color-shade-4); margin: @margin-default -(@margin-default); + color: var(--color-foreground); h1, h2, @@ -96,8 +99,8 @@ } dt { - background-color: @ini_highlight; - color: @ini_highlight_text; + background-color: none; + color: var(--color-foreground); @media @screen_min-xs { width: 33.3%; diff --git a/css/toollist.less b/css/toollist.less index c2f69d5..e9d5b14 100644 --- a/css/toollist.less +++ b/css/toollist.less @@ -23,7 +23,7 @@ svg { width: @font-size-default; vertical-align: middle; - fill: @ini_nav_menu_color; + fill: var(--color-foreground); margin-right: .2em; } } diff --git a/deleted.files b/deleted.files new file mode 100644 index 0000000..3a43b3d --- /dev/null +++ b/deleted.files @@ -0,0 +1,102 @@ +# This is a list of files that were present in previous releases +# but were removed later. They should not exist in your installation. +.gitlab-ci.yml +css/area_main-sidebar-content.less +css/area_main-sidebar.less +css/area_sidebar-search.less +css/area_sidetools.less +css/base_fonts.less +css/basic.css +css/content.css +css/design.css +css/includes.css +css/mobile.css +css/plugins/hightlight_parent.less +css/print.css +css/structure.css +fabfile.py +fonts/Google Android License.txt +fonts/icons/fontello-1a5d199c.zip +fonts/icons/svg/index.css +fonts/roboto-black.eot +fonts/roboto-black.svg +fonts/roboto-black.ttf +fonts/roboto-black.woff +fonts/roboto-blackItalic.eot +fonts/roboto-blackItalic.svg +fonts/roboto-blackItalic.ttf +fonts/roboto-blackItalic.woff +fonts/roboto-bold.eot +fonts/roboto-bold.svg +fonts/roboto-bold.ttf +fonts/roboto-bold.woff +fonts/roboto-boldcondensed.eot +fonts/roboto-boldcondensed.svg +fonts/roboto-boldcondensed.ttf +fonts/roboto-boldcondensed.woff +fonts/roboto-boldcondenseditalic.eot +fonts/roboto-boldcondenseditalic.svg +fonts/roboto-boldcondenseditalic.ttf +fonts/roboto-boldcondenseditalic.woff +fonts/roboto-bolditalic.eot +fonts/roboto-bolditalic.svg +fonts/roboto-bolditalic.ttf +fonts/roboto-bolditalic.woff +fonts/roboto-condensed.eot +fonts/roboto-condensed.svg +fonts/roboto-condensed.ttf +fonts/roboto-condensed.woff +fonts/roboto-condenseditalic.eot +fonts/roboto-condenseditalic.svg +fonts/roboto-condenseditalic.ttf +fonts/roboto-condenseditalic.woff +fonts/roboto-italic.eot +fonts/roboto-italic.svg +fonts/roboto-italic.ttf +fonts/roboto-italic.woff.textClipping +fonts/roboto-italic2.woff +fonts/roboto-light.eot +fonts/roboto-light.svg +fonts/roboto-light.ttf +fonts/roboto-light.woff +fonts/roboto-lightItalic.eot +fonts/roboto-lightItalic.svg +fonts/roboto-lightItalic.ttf +fonts/roboto-lightItalic.woff +fonts/roboto-medium.eot +fonts/roboto-medium.svg +fonts/roboto-medium.ttf +fonts/roboto-medium.woff +fonts/roboto-mediumItalic.eot +fonts/roboto-mediumItalic.svg +fonts/roboto-mediumItalic.ttf +fonts/roboto-mediumItalic.woff +fonts/roboto-regular.eot +fonts/roboto-regular.svg +fonts/roboto-regular.ttf +fonts/roboto-regular.woff +fonts/roboto-thin.eot +fonts/roboto-thin.svg +fonts/roboto-thin.ttf +fonts/roboto-thin.woff +fonts/roboto-thinItalic.eot +fonts/roboto-thinItalic.svg +fonts/roboto-thinItalic.ttf +fonts/roboto-thinItalic.woff +images/apple-touch-icon.png +images/logo.png +js/base/helper.js +js/base/rem.min.js +js/base/spc.js +js/base/velocity.min.js +js/legacy/html5shiv.js +js/legacy/respond.min.js +js/breadcrumb.js +js/sidebar-menu.js +tpl/nav-main.php +tpl/nav-page-quality-tasks.php +tpl/nav-sitetools.php +tpl/nav-trace.php +tpl/nav-usermenu.php +tpl/nav-usertools.php +tpl_functions.php diff --git a/detail.php b/detail.php index fa90150..49de8c8 100755 --- a/detail.php +++ b/detail.php @@ -1,4 +1,3 @@ - + diff --git a/fonts/argonglow/ArgonGlow-Bold.woff2 b/fonts/argonglow/ArgonGlow-Bold.woff2 new file mode 100644 index 0000000..caf6ff6 Binary files /dev/null and b/fonts/argonglow/ArgonGlow-Bold.woff2 differ diff --git a/fonts/argonglow/ArgonGlow-ExtraLight.woff2 b/fonts/argonglow/ArgonGlow-ExtraLight.woff2 new file mode 100644 index 0000000..7dc6448 Binary files /dev/null and b/fonts/argonglow/ArgonGlow-ExtraLight.woff2 differ diff --git a/fonts/argonglow/ArgonGlow-Light.woff2 b/fonts/argonglow/ArgonGlow-Light.woff2 new file mode 100644 index 0000000..08a6637 Binary files /dev/null and b/fonts/argonglow/ArgonGlow-Light.woff2 differ diff --git a/fonts/argonglow/ArgonGlow-Medium.woff2 b/fonts/argonglow/ArgonGlow-Medium.woff2 new file mode 100644 index 0000000..83bb0d9 Binary files /dev/null and b/fonts/argonglow/ArgonGlow-Medium.woff2 differ diff --git a/fonts/argonglow/ArgonGlow-Regular.woff2 b/fonts/argonglow/ArgonGlow-Regular.woff2 new file mode 100644 index 0000000..601d465 Binary files /dev/null and b/fonts/argonglow/ArgonGlow-Regular.woff2 differ diff --git a/fonts/argonglow/ArgonGlow-SemiBold.woff2 b/fonts/argonglow/ArgonGlow-SemiBold.woff2 new file mode 100644 index 0000000..a88f939 Binary files /dev/null and b/fonts/argonglow/ArgonGlow-SemiBold.woff2 differ diff --git a/fonts/argonglow/ArgonGlow-Thin.woff2 b/fonts/argonglow/ArgonGlow-Thin.woff2 new file mode 100644 index 0000000..dc950fe Binary files /dev/null and b/fonts/argonglow/ArgonGlow-Thin.woff2 differ diff --git a/fonts/argonglow/ArgonGlow-VariableVF.woff2 b/fonts/argonglow/ArgonGlow-VariableVF.woff2 new file mode 100644 index 0000000..7d3aaf4 Binary files /dev/null and b/fonts/argonglow/ArgonGlow-VariableVF.woff2 differ diff --git a/fonts/argonglow/OFL b/fonts/argonglow/OFL new file mode 100644 index 0000000..1cdb289 --- /dev/null +++ b/fonts/argonglow/OFL @@ -0,0 +1,96 @@ +Copyright (c) 2025, The Argon Glow Project Authors (https://codeberg.org/kritzl/argon-glow), +Copyright (c) 2025, kritzl (kritzl@kritzl.dev), +Copyright (c) 2025, traumweh (traumweh@lyx.sh), +with Reserved Font Name "Argon Glow". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting - in part or in whole - any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/athiti/Athiti-Bold.woff2 b/fonts/athiti/Athiti-Bold.woff2 new file mode 100644 index 0000000..4cc5810 Binary files /dev/null and b/fonts/athiti/Athiti-Bold.woff2 differ diff --git a/fonts/athiti/Athiti-ExtraLight.woff2 b/fonts/athiti/Athiti-ExtraLight.woff2 new file mode 100644 index 0000000..9bb6cea Binary files /dev/null and b/fonts/athiti/Athiti-ExtraLight.woff2 differ diff --git a/fonts/athiti/Athiti-Light.woff2 b/fonts/athiti/Athiti-Light.woff2 new file mode 100644 index 0000000..51f9e72 Binary files /dev/null and b/fonts/athiti/Athiti-Light.woff2 differ diff --git a/fonts/athiti/Athiti-Medium.woff2 b/fonts/athiti/Athiti-Medium.woff2 new file mode 100644 index 0000000..bc8b50a Binary files /dev/null and b/fonts/athiti/Athiti-Medium.woff2 differ diff --git a/fonts/athiti/Athiti-Regular.woff2 b/fonts/athiti/Athiti-Regular.woff2 new file mode 100644 index 0000000..c69c128 Binary files /dev/null and b/fonts/athiti/Athiti-Regular.woff2 differ diff --git a/fonts/athiti/Athiti-SemiBold.woff2 b/fonts/athiti/Athiti-SemiBold.woff2 new file mode 100644 index 0000000..726a075 Binary files /dev/null and b/fonts/athiti/Athiti-SemiBold.woff2 differ diff --git a/fonts/athiti/OFL b/fonts/athiti/OFL new file mode 100644 index 0000000..b0f4597 --- /dev/null +++ b/fonts/athiti/OFL @@ -0,0 +1,93 @@ +Copyright (c) 2015, Cadson Demak (info@cadsondemak.com) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/departuremono/DepartureMono-Regular.woff2 b/fonts/departuremono/DepartureMono-Regular.woff2 new file mode 100644 index 0000000..7d8b33b Binary files /dev/null and b/fonts/departuremono/DepartureMono-Regular.woff2 differ diff --git a/fonts/departuremono/LICENSE b/fonts/departuremono/LICENSE new file mode 100644 index 0000000..de52476 --- /dev/null +++ b/fonts/departuremono/LICENSE @@ -0,0 +1,93 @@ +Copyright 2022–2024 Helena Zhang (helenazhang.com). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/img/LICENSE b/img/LICENSE new file mode 100644 index 0000000..7d4f96c --- /dev/null +++ b/img/LICENSE @@ -0,0 +1,427 @@ +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/img/arrow_down.svg b/img/arrow_down.svg new file mode 100644 index 0000000..56b4a9b --- /dev/null +++ b/img/arrow_down.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/arrow_down_left.svg b/img/arrow_down_left.svg new file mode 100644 index 0000000..e1b3007 --- /dev/null +++ b/img/arrow_down_left.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/arrow_down_right.svg b/img/arrow_down_right.svg new file mode 100644 index 0000000..56f308a --- /dev/null +++ b/img/arrow_down_right.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/arrow_left.svg b/img/arrow_left.svg new file mode 100644 index 0000000..1a35060 --- /dev/null +++ b/img/arrow_left.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/arrow_right.svg b/img/arrow_right.svg new file mode 100644 index 0000000..23fba2c --- /dev/null +++ b/img/arrow_right.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/arrow_up.svg b/img/arrow_up.svg new file mode 100644 index 0000000..34ec6cd --- /dev/null +++ b/img/arrow_up.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/arrow_up_left.svg b/img/arrow_up_left.svg new file mode 100644 index 0000000..923c5dd --- /dev/null +++ b/img/arrow_up_left.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/arrow_up_right.svg b/img/arrow_up_right.svg new file mode 100644 index 0000000..ab82e8b --- /dev/null +++ b/img/arrow_up_right.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/basket.svg b/img/basket.svg new file mode 100644 index 0000000..5dfc4a1 --- /dev/null +++ b/img/basket.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/bed.svg b/img/bed.svg new file mode 100644 index 0000000..bd22140 --- /dev/null +++ b/img/bed.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/clock.svg b/img/clock.svg new file mode 100644 index 0000000..9050282 --- /dev/null +++ b/img/clock.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/code.svg b/img/code.svg new file mode 100644 index 0000000..c283678 --- /dev/null +++ b/img/code.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/creature.svg b/img/creature.svg new file mode 100644 index 0000000..1ab0d45 --- /dev/null +++ b/img/creature.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/cross.svg b/img/cross.svg new file mode 100644 index 0000000..d0e63ad --- /dev/null +++ b/img/cross.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/cross_small.svg b/img/cross_small.svg new file mode 100644 index 0000000..d890ea0 --- /dev/null +++ b/img/cross_small.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/cup_1.svg b/img/cup_1.svg new file mode 100644 index 0000000..9020279 --- /dev/null +++ b/img/cup_1.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/cup_2.svg b/img/cup_2.svg new file mode 100644 index 0000000..0db73f7 --- /dev/null +++ b/img/cup_2.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/dect.svg b/img/dect.svg new file mode 100644 index 0000000..b061df2 --- /dev/null +++ b/img/dect.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/export.sh b/img/export.sh new file mode 100755 index 0000000..ba6d47d --- /dev/null +++ b/img/export.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# This script can be used to automatically export all project files +# to ensure, they are a single path without any modifiers or other +# inkscape-dependent things. It will also remove unnecessary things +# from the SVGs. For this the script requires both inkscape and svgo +# to be installed. + +for infile in ./project_files/*.svg +do + outfile="./$(basename "$infile")" + + inkscape --actions="select-by-element: svg; + object-set-attribute: id, svg; + select-clear; + select-all: layers; + selection-ungroup; + select-clear; + select-all: no-groups; + object-stroke-to-path; + path-union; + object-set-attribute: id,path; + object-set-attribute: style,; + selection-group; + selection-ungroup; + export-plain-svg;" \ + --export-filename "$outfile" \ + --vacuum-defs "$infile" + + svgo --pretty "$outfile" +done diff --git a/img/external.svg b/img/external.svg new file mode 100644 index 0000000..92a7419 --- /dev/null +++ b/img/external.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/fairydust.svg b/img/fairydust.svg new file mode 100644 index 0000000..e847437 --- /dev/null +++ b/img/fairydust.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/file-export.svg b/img/file-export.svg index d1a3f2d..727df65 100644 --- a/img/file-export.svg +++ b/img/file-export.svg @@ -1 +1,6 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/img/flag.svg b/img/flag.svg new file mode 100644 index 0000000..539a20e --- /dev/null +++ b/img/flag.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/gluten.svg b/img/gluten.svg new file mode 100644 index 0000000..715037b --- /dev/null +++ b/img/gluten.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/hackertours.svg b/img/hackertours.svg new file mode 100644 index 0000000..ca88cc6 --- /dev/null +++ b/img/hackertours.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/hare_head.svg b/img/hare_head.svg new file mode 100644 index 0000000..e20029e --- /dev/null +++ b/img/hare_head.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/history.svg b/img/history.svg new file mode 100644 index 0000000..4b66dd4 --- /dev/null +++ b/img/history.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/home.svg b/img/home.svg new file mode 100644 index 0000000..6c4e2f1 --- /dev/null +++ b/img/home.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/hygene.svg b/img/hygene.svg new file mode 100644 index 0000000..a7db265 --- /dev/null +++ b/img/hygene.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/info.svg b/img/info.svg new file mode 100644 index 0000000..2c6c17d --- /dev/null +++ b/img/info.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/lightbulb.svg b/img/lightbulb.svg new file mode 100644 index 0000000..ee9e8df --- /dev/null +++ b/img/lightbulb.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/link.svg b/img/link.svg new file mode 100644 index 0000000..a88ab81 --- /dev/null +++ b/img/link.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/location.svg b/img/location.svg new file mode 100644 index 0000000..e299d03 --- /dev/null +++ b/img/location.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/lock.svg b/img/lock.svg new file mode 100644 index 0000000..6f32cac --- /dev/null +++ b/img/lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/login.svg b/img/login.svg new file mode 100644 index 0000000..efa6a28 --- /dev/null +++ b/img/login.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/logout.svg b/img/logout.svg new file mode 100644 index 0000000..18c84d2 --- /dev/null +++ b/img/logout.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/menu.svg b/img/menu.svg index db5d4df..dda9be4 100644 --- a/img/menu.svg +++ b/img/menu.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/img/menu_small.svg b/img/menu_small.svg new file mode 100644 index 0000000..e5258de --- /dev/null +++ b/img/menu_small.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/merch.svg b/img/merch.svg new file mode 100644 index 0000000..f1e4512 --- /dev/null +++ b/img/merch.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/message.svg b/img/message.svg new file mode 100644 index 0000000..d89f9e4 --- /dev/null +++ b/img/message.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/microphone.svg b/img/microphone.svg new file mode 100644 index 0000000..041242d --- /dev/null +++ b/img/microphone.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/network.svg b/img/network.svg new file mode 100644 index 0000000..d746fb9 --- /dev/null +++ b/img/network.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/pen.svg b/img/pen.svg new file mode 100644 index 0000000..7586346 --- /dev/null +++ b/img/pen.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/pencil.svg b/img/pencil.svg index e3a4faa..7fae82b 100644 --- a/img/pencil.svg +++ b/img/pencil.svg @@ -1 +1,18 @@ - \ No newline at end of file + + + + + + + diff --git a/img/pin.svg b/img/pin.svg new file mode 100644 index 0000000..2b07c7a --- /dev/null +++ b/img/pin.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/plate_and_cutlery.svg b/img/plate_and_cutlery.svg new file mode 100644 index 0000000..e759c5a --- /dev/null +++ b/img/plate_and_cutlery.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/power.svg b/img/power.svg new file mode 100644 index 0000000..1e003d3 --- /dev/null +++ b/img/power.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/question.svg b/img/question.svg new file mode 100644 index 0000000..f904106 --- /dev/null +++ b/img/question.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/schedule.svg b/img/schedule.svg new file mode 100644 index 0000000..48c0c0e --- /dev/null +++ b/img/schedule.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/search.svg b/img/search.svg new file mode 100644 index 0000000..0e81215 --- /dev/null +++ b/img/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/settings.svg b/img/settings.svg new file mode 100644 index 0000000..410588b --- /dev/null +++ b/img/settings.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/signup.svg b/img/signup.svg new file mode 100644 index 0000000..6c20d48 --- /dev/null +++ b/img/signup.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/soldering_iron.svg b/img/soldering_iron.svg new file mode 100644 index 0000000..6c36a6e --- /dev/null +++ b/img/soldering_iron.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/tick.svg b/img/tick.svg new file mode 100644 index 0000000..6d5e5aa --- /dev/null +++ b/img/tick.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/tick_small.svg b/img/tick_small.svg new file mode 100644 index 0000000..cf7760e --- /dev/null +++ b/img/tick_small.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/ticket.svg b/img/ticket.svg new file mode 100644 index 0000000..d836a02 --- /dev/null +++ b/img/ticket.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/toast.svg b/img/toast.svg new file mode 100644 index 0000000..287b801 --- /dev/null +++ b/img/toast.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/train.svg b/img/train.svg new file mode 100644 index 0000000..6791f66 --- /dev/null +++ b/img/train.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/vegan.svg b/img/vegan.svg new file mode 100644 index 0000000..c65c83e --- /dev/null +++ b/img/vegan.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/warning.svg b/img/warning.svg new file mode 100644 index 0000000..84bdef2 --- /dev/null +++ b/img/warning.svg @@ -0,0 +1,3 @@ + + + diff --git a/js/anchor.js b/js/anchor.js new file mode 100644 index 0000000..6bbd854 --- /dev/null +++ b/js/anchor.js @@ -0,0 +1,13 @@ +jQuery(function () { + jQuery('#dokuwiki__content.main-content').find('h1,h2,h3,h4,h5').append(function () { + if (this.id) { + return '' + + '' + + '' + + '' + + ''; + } else { + return ''; + } + }) +}); diff --git a/js/base/rem.min.js b/js/base/rem.min.js deleted file mode 100755 index 7a96d75..0000000 --- a/js/base/rem.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Module: rem - v1.3.2 - * Description: A polyfill to parse CSS links and rewrite pixel equivalents into head for non supporting browsers - * Date Built: 2014-07-02 - * Copyright (c) 2014 | Chuck Carpenter ,Lucas Serven ; -**/ -!function(e){"use strict";var t=function(){var e=document.createElement("div");return e.style.cssText="font-size: 1rem;",/rem/.test(e.style.fontSize)},n=function(){for(var e=document.getElementsByTagName("link"),t=[],n=0;n0?(v=[],p=[],m=[],r()):i()}},a=function(e,t){for(var n,r=d(e).replace(/\/\*[\s\S]*?\*\//g,""),o=/[\w\d\s\-\/\\\[\]:,.'"*()<>+~%#^$_=|@]+\{[\w\d\s\-\/\\%#:!;,.'"*()]+\d*\.?\d+rem[\w\d\s\-\/\\%#:!;,.'"*()]*\}/g,a=r.match(o),i=/\d*\.?\d+rem/g,s=r.match(i),c=/(.*\/)/,l=c.exec(t)[0],u=/@import (?:url\()?['"]?([^'\)"]*)['"]?\)?[^;]*/gm;null!==(n=u.exec(e));)m.push(0===n[1].indexOf("/")?n[1]:l+n[1]);null!==a&&0!==a.length&&(f=f.concat(a),g=g.concat(s))},i=function(){for(var e=/[\w\d\s\-\/\\%#:,.'"*()]+\d*\.?\d+rem[\w\d\s\-\/\\%#:!,.'"*()]*[;}]/g,t=0;t").text(s).html(); - }, - decode_entities: function(s){ - return $("").html(s).text(); - }, - /* add func to load event */ - add_loadEvent: function(func_name){ - var lastonload = window.onload; - if (typeof window.onload != 'function') { window.onload = func_name; } - else { window.onload = function() { lastonload(); func_name(); }; } - }, - /* logging for debug */ - _debug: function(msg){ - if(this.config.debug) { - try{ - if(console){ - console.log(msg); - } else{ - alert(msg); - } - }catch(err){ - alert(msg); - } - } - }, - /* return obj values for debug */ - _get_objVs: function(objl){ - try{ - var p = typeof JSON != "undefined" ? JSON.stringify : function(objl){ - var arr = []; - $.each(objl,function(key,val){ - var next = key + ": "; - next += $.isPlainObject(val) ? printObj(val) : val; - arr.push( next ); - }); - return "{ " + arr.join(", ") + " }"; - }; - return p(objl); - }catch(err){ - this._debug(err); - return ''; - } - }, - aria_live: function(setobj){ - if(typeof(setobj)=='object'){ - setobj.attr('aria-live',"polite"); - } - }, - aria_role: function(setobj, role){ - if(typeof(setobj)=='object'){ - setobj.attr('role',role); - } - }, - change_tabindex: function(remobj,setobj,i){ - if(typeof(remobj)=='object'){ - remobj.removeAttr('tabindex'); - } - if(typeof(setobj)=='object'){ - setobj.attr('tabindex',i); - } - }, - /* set focus to dom object: param obj */ - set_newfocusObj: function(focusobj){ - try{ - if(focusobj) focusobj.focus(); - }catch(err){ - this._debug('exception: '+err); - } - }, - /* set focus to dom object: param id */ - set_newfocusId: function(fid){ - try{ - var focusobj = document.getElementById(fid); - if(focusobj) focusobj.focus(); - }catch(err){ - this._debug('exception: '+err); - } - }, - /* set focus to nonfocussable dom object: */ - set_newfocusBox: function(remobj,setobj){ - this.change_tabindex(remobj,setobj,0); - try{ - if(setobj) setobj.focus(); - }catch(err){ - this._debug('exception: '+err); - } - }, - /* set title(s) and remove other title(s) if set */ - set_title: function(remobj,setobj,ctitle){ - if(typeof(remobj)=='object'){ - remobj.removeAttr('title'); - } - if(typeof(setobj)=='object'){ - setobj.attr('title',ctitle); - } - }, - /* count appearances of dom elems with certain markup */ - count: function(jqdom){ - var num = 0; - $(jqdom).each(function() { - num++; - }); - return num; - }, - countOV: function(objlit){ - var i = 0; - for (var elem in objlit){ - i++; - } - return i; - }, - /*merge object literals (do not overwrite default, not recursively) */ - merge: function(objl1,objl2,objl3,objl4){ - return $.extend({},objl1,objl2,objl3,objl4); - }, - /*merge object literals (do not overwrite default, recursively) */ - mergeR: function(objl1,objl2,objl3,objl4){ - return $.extend(true,{},objl1,objl2,objl3,objl4); - }, - loadImage: function(isrc, func, errfunc){ - try{ - var img = new Image(); - img.onload = func; - img.onerror = errfunc; - img.src = isrc; - }catch(err){ - errfunc(); - } - }, - tb_getPageSize: function(){ - var de=document.documentElement; - var w=window.innerWidth||self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth; - var h=window.innerHeight||self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight; - arrayPageSize=[w,h]; - return arrayPageSize; - }, - useLocStorage: function(){ - return ('localStorage' in window && window.localStorage !== null); - }, - saveLSI: function(key, data){ - if (this.useLocStorage) { - localStorage.setItem(key, data); - } - }, - removeLSI: function(key){ - if (this.useLocStorage) { - localStorage.removeItem(key); - } - }, - getLSI: function(key){ - if (this.useLocStorage) { - return localStorage.getItem(key); - } - return ''; - - }, - showAllLSI: function() { - if (this.useLocStorage) { - var key = ""; - for (var i=0; i<=localStorage.length-1; i++) { - key = localStorage.key(i); - //console.log(key+': '+localStorage.getItem(key)); - } - } - } -}; - - -// + + + + + + + + + + + + + + + + + + + + + + + + + + + + -// shuffle func for random values -// + + + + + + + + + + + + + + + + + + + + + + + + + + + + -Array.prototype.shuffle = function(){ - var tmp, rand; - for(var i =0; i < this.length; i++){ - rand = Math.floor(Math.random() * this.length); - tmp = this[i]; - this[i] = this[rand]; - this[rand] =tmp; - } -}; - -// + + + + + + + + + + + + + + + + + + + + + + + + + + + + -// js trim func for ie -// + + + + + + + + + + + + + + + + + + + + + + + + + + + + -if(typeof String.prototype.trim !== 'function') { - String.prototype.trim = function() { - return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); - }; -} - -/** - * simplify setting and getting state out of a node - * $("#my_id").data("my_data_attr") equals $$("#my_id").my_data_attr and - * $("#my_id").data("my_data_attr", "my_data_val") equals $$("#my_id").my_data_attr = my_data_val - * you can also do - * $$("#my_id").my_data_val = $$("#my_id").my_data_val + 1. - */ -var $$ = function(param) { - var node = $(param)[0]; - var id = $.data(node); - $.cache[id] = $.cache[id] || {}; - $.cache[id].node = node; - return $.cache[id]; -}; -var alertFB = false; -if (typeof console === "undefined" || typeof console.log === "undefined") { - console = {}; - if (alertFB) { - console.log = function(msg) { - alert(msg); - }; - } else { - console.log = function() {}; - } -} - -/** - * custom event handler ‘show’/’hide’ events for using .on() - */ -(function ($) { - $.each(['show', 'hide'], function (i, e) { - var el = $.fn[e]; - $.fn[e] = function () { - this.trigger(e); - return el.apply(this, arguments); - }; - }); -})(jQuery); diff --git a/js/base/velocity.min.js b/js/base/velocity.min.js deleted file mode 100644 index de91ade..0000000 --- a/js/base/velocity.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! VelocityJS.org (1.5.0). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ -/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ -!function(a){"use strict";function b(a){var b=a.length,d=c.type(a);return"function"!==d&&!c.isWindow(a)&&(!(1!==a.nodeType||!b)||("array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a))}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return a&&a===a.window},c.type=function(a){return a?"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a:a+""},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return b===undefined||f.call(a,b)},c.each=function(a,c,d){var e=0,f=a.length,g=b(a);if(d){if(g)for(;e0?e=g:c=g}while(Math.abs(f)>r&&++h=q?k(b,h):0===i?h:m(b,c,c+u)}function o(){y=!0,a===c&&d===e||l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;w<4;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function l(a,b){var c=a;return u.isString(a)?y.Easings[a]||(c=!1):c=u.isArray(a)&&1===a.length?j.apply(null,a):u.isArray(a)&&2===a.length?z.apply(null,a.concat([b])):!(!u.isArray(a)||4!==a.length)&&k.apply(null,a),c===!1&&(c=y.Easings[y.defaults.easing]?y.defaults.easing:x),c}function m(a){if(a){var b=y.timestamp&&a!==!0?a:r.now(),c=y.State.calls.length;c>1e4&&(y.State.calls=e(y.State.calls),c=y.State.calls.length);for(var f=0;f4;a--){var b=c.createElement("div");if(b.innerHTML="",b.getElementsByTagName("span").length)return b=null,a}return d}(),q=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),r=function(){var a=b.performance||{};if("function"!=typeof a.now){var c=a.timing&&a.timing.navigationStart?a.timing.navigationStart:(new Date).getTime();a.now=function(){return(new Date).getTime()-c}}return a}(),s=function(){var a=Array.prototype.slice;try{return a.call(c.documentElement),a}catch(b){return function(b,c){var d=this.length;if("number"!=typeof b&&(b=0),"number"!=typeof c&&(c=d),this.slice)return a.call(this,b,c);var e,f=[],g=b>=0?b:Math.max(0,d+b),h=c<0?d+c:Math.min(c,d),i=h-g;if(i>0)if(f=new Array(i),this.charAt)for(e=0;e=0}:function(a,b){for(var c=0;c1e-4&&Math.abs(h.v)>1e-4))break;return f?function(a){return j[a*(j.length-1)|0]}:k}}();y.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},o.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){y.Easings[b[0]]=k.apply(null,b[1])});var A=y.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"],units:["%","em","ex","ch","rem","vw","vh","vmin","vmax","cm","mm","Q","in","pc","pt","px","deg","grad","rad","turn","s","ms"],colorNames:{aliceblue:"240,248,255",antiquewhite:"250,235,215",aquamarine:"127,255,212",aqua:"0,255,255",azure:"240,255,255",beige:"245,245,220",bisque:"255,228,196",black:"0,0,0",blanchedalmond:"255,235,205",blueviolet:"138,43,226",blue:"0,0,255",brown:"165,42,42",burlywood:"222,184,135",cadetblue:"95,158,160",chartreuse:"127,255,0",chocolate:"210,105,30",coral:"255,127,80",cornflowerblue:"100,149,237",cornsilk:"255,248,220",crimson:"220,20,60",cyan:"0,255,255",darkblue:"0,0,139",darkcyan:"0,139,139",darkgoldenrod:"184,134,11",darkgray:"169,169,169",darkgrey:"169,169,169",darkgreen:"0,100,0",darkkhaki:"189,183,107",darkmagenta:"139,0,139",darkolivegreen:"85,107,47",darkorange:"255,140,0",darkorchid:"153,50,204",darkred:"139,0,0",darksalmon:"233,150,122",darkseagreen:"143,188,143",darkslateblue:"72,61,139",darkslategray:"47,79,79",darkturquoise:"0,206,209",darkviolet:"148,0,211",deeppink:"255,20,147",deepskyblue:"0,191,255",dimgray:"105,105,105",dimgrey:"105,105,105",dodgerblue:"30,144,255",firebrick:"178,34,34",floralwhite:"255,250,240",forestgreen:"34,139,34",fuchsia:"255,0,255",gainsboro:"220,220,220",ghostwhite:"248,248,255",gold:"255,215,0",goldenrod:"218,165,32",gray:"128,128,128",grey:"128,128,128",greenyellow:"173,255,47",green:"0,128,0",honeydew:"240,255,240",hotpink:"255,105,180",indianred:"205,92,92",indigo:"75,0,130",ivory:"255,255,240",khaki:"240,230,140",lavenderblush:"255,240,245",lavender:"230,230,250",lawngreen:"124,252,0",lemonchiffon:"255,250,205",lightblue:"173,216,230",lightcoral:"240,128,128",lightcyan:"224,255,255",lightgoldenrodyellow:"250,250,210",lightgray:"211,211,211",lightgrey:"211,211,211",lightgreen:"144,238,144",lightpink:"255,182,193",lightsalmon:"255,160,122",lightseagreen:"32,178,170",lightskyblue:"135,206,250",lightslategray:"119,136,153",lightsteelblue:"176,196,222",lightyellow:"255,255,224",limegreen:"50,205,50",lime:"0,255,0",linen:"250,240,230",magenta:"255,0,255",maroon:"128,0,0",mediumaquamarine:"102,205,170",mediumblue:"0,0,205",mediumorchid:"186,85,211",mediumpurple:"147,112,219",mediumseagreen:"60,179,113",mediumslateblue:"123,104,238",mediumspringgreen:"0,250,154",mediumturquoise:"72,209,204",mediumvioletred:"199,21,133",midnightblue:"25,25,112",mintcream:"245,255,250",mistyrose:"255,228,225",moccasin:"255,228,181",navajowhite:"255,222,173",navy:"0,0,128",oldlace:"253,245,230",olivedrab:"107,142,35",olive:"128,128,0",orangered:"255,69,0",orange:"255,165,0",orchid:"218,112,214",palegoldenrod:"238,232,170",palegreen:"152,251,152",paleturquoise:"175,238,238",palevioletred:"219,112,147",papayawhip:"255,239,213",peachpuff:"255,218,185",peru:"205,133,63",pink:"255,192,203",plum:"221,160,221",powderblue:"176,224,230",purple:"128,0,128",red:"255,0,0",rosybrown:"188,143,143",royalblue:"65,105,225",saddlebrown:"139,69,19",salmon:"250,128,114",sandybrown:"244,164,96",seagreen:"46,139,87",seashell:"255,245,238",sienna:"160,82,45",silver:"192,192,192",skyblue:"135,206,235",slateblue:"106,90,205",slategray:"112,128,144",snow:"255,250,250",springgreen:"0,255,127",steelblue:"70,130,180",tan:"210,180,140",teal:"0,128,128",thistle:"216,191,216",tomato:"255,99,71",turquoise:"64,224,208",violet:"238,130,238",wheat:"245,222,179",whitesmoke:"245,245,245",white:"255,255,255",yellowgreen:"154,205,50",yellow:"255,255,0"}},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){function a(a,b,c){if("border-box"===A.getPropertyValue(b,"boxSizing").toString().toLowerCase()===(c||!1)){var d,e,f=0,g="width"===a?["Left","Right"]:["Top","Bottom"],h=["padding"+g[0],"padding"+g[1],"border"+g[0]+"Width","border"+g[1]+"Width"];for(d=0;d9)||y.State.isGingerbread||(A.Lists.transformsBase=A.Lists.transformsBase.concat(A.Lists.transforms3D));for(var c=0;c8)&&3===f.split(" ").length&&(f+=" 1"),f;case"inject":return/^rgb/.test(e)?e:(p<=8?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(p<=8?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")")}}}();A.Normalizations.registered.innerWidth=b("width",!0),A.Normalizations.registered.innerHeight=b("height",!0),A.Normalizations.registered.outerWidth=b("width"),A.Normalizations.registered.outerHeight=b("height")}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(p||y.State.isAndroid&&!y.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(y.State.prefixMatches[a])return[y.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;c=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(A.Normalizations.registered[c]&&"transform"===A.Normalizations.registered[c]("name",a))A.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(A.Hooks.registered[c]){var i=c,j=A.Hooks.getRoot(c);e=e||A.getPropertyValue(a,j),d=A.Hooks.injectValue(i,d,e),c=j}if(A.Normalizations.registered[c]&&(d=A.Normalizations.registered[c]("inject",a,d),c=A.Normalizations.registered[c]("name",a)),h=A.Names.prefixCheck(c)[0],p<=8)try{a.style[h]=d}catch(l){y.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else{var k=g(a);k&&k.isSVG&&A.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d}y.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){var b="",c=g(a);if((p||y.State.isAndroid&&!y.State.isChrome)&&c&&c.isSVG){var d=function(b){return parseFloat(A.getPropertyValue(a,b))},e={translate:[d("translateX"),d("translateY")],skewX:[d("skewX")],skewY:[d("skewY")],scale:1!==d("scale")?[d("scale"),d("scale")]:[d("scaleX"),d("scaleY")],rotate:[d("rotateZ"),0,0]};o.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),e[a]&&(b+=a+"("+e[a].join(" ")+") ",delete e[a])})}else{var f,h;o.each(g(a).transformCache,function(c){if(f=g(a).transformCache[c],"transformPerspective"===c)return h=f,!0;9===p&&"rotateZ"===c&&(c="rotate"),b+=c+f+" "}),h&&(b="perspective"+h+" "+b)}A.setPropertyValue(a,"transform",b)}};A.Hooks.register(),A.Normalizations.register(),y.hook=function(a,b,c){var e;return a=f(a),o.each(a,function(a,f){if(g(f)===d&&y.init(f),c===d)e===d&&(e=A.getPropertyValue(f,b));else{var h=A.setPropertyValue(f,b,c);"transform"===h[0]&&y.CSS.flushTransformCache(f),e=h}}),e};var B=function(){function a(){return k?z.promise||null:p}function e(a,e){function f(f){var k,n;if(i.begin&&0===D)try{i.begin.call(r,r)}catch(V){setTimeout(function(){throw V},1)}if("scroll"===G){var p,q,w,x=/^x$/i.test(i.axis)?"Left":"Top",B=parseFloat(i.offset)||0;i.container?u.isWrapped(i.container)||u.isNode(i.container)?(i.container=i.container[0]||i.container,p=i.container["scroll"+x],w=p+o(a).position()[x.toLowerCase()]+B):i.container=null:(p=y.State.scrollAnchor[y.State["scrollProperty"+x]],q=y.State.scrollAnchor[y.State["scrollProperty"+("Left"===x?"Top":"Left")]],w=o(a).offset()[x.toLowerCase()]+B),j={scroll:{rootPropertyValue:!1,startValue:p,currentValue:p,endValue:w,unitType:"",easing:i.easing,scrollData:{container:i.container,direction:x,alternateValue:q}},element:a},y.debug&&console.log("tweensContainer (scroll): ",j.scroll,a)}else if("reverse"===G){if(!(k=g(a)))return;if(!k.tweensContainer)return void o.dequeue(a,i.queue);"none"===k.opts.display&&(k.opts.display="auto"),"hidden"===k.opts.visibility&&(k.opts.visibility="visible"),k.opts.loop=!1,k.opts.begin=null,k.opts.complete=null,v.easing||delete i.easing,v.duration||delete i.duration,i=o.extend({},k.opts,i),n=o.extend(!0,{},k?k.tweensContainer:null);for(var E in n)if(n.hasOwnProperty(E)&&"element"!==E){var F=n[E].startValue;n[E].startValue=n[E].currentValue=n[E].endValue,n[E].endValue=F,u.isEmptyObject(v)||(n[E].easing=i.easing),y.debug&&console.log("reverse tweensContainer ("+E+"): "+JSON.stringify(n[E]),a)}j=n}else if("start"===G){k=g(a),k&&k.tweensContainer&&k.isAnimating===!0&&(n=k.tweensContainer);var H=function(e,f){var g,l=A.Hooks.getRoot(e),m=!1,p=f[0],q=f[1],r=f[2] -;if(!(k&&k.isSVG||"tween"===l||A.Names.prefixCheck(l)[1]!==!1||A.Normalizations.registered[l]!==d))return void(y.debug&&console.log("Skipping ["+l+"] due to a lack of browser support."));(i.display!==d&&null!==i.display&&"none"!==i.display||i.visibility!==d&&"hidden"!==i.visibility)&&/opacity|filter/.test(e)&&!r&&0!==p&&(r=0),i._cacheValues&&n&&n[e]?(r===d&&(r=n[e].endValue+n[e].unitType),m=k.rootPropertyValueCache[l]):A.Hooks.registered[e]?r===d?(m=A.getPropertyValue(a,l),r=A.getPropertyValue(a,e,m)):m=A.Hooks.templates[l][1]:r===d&&(r=A.getPropertyValue(a,e));var s,t,v,w=!1,x=function(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=A.Values.getUnitType(a)),[d,c]};if(r!==p&&u.isString(r)&&u.isString(p)){g="";var z=0,B=0,C=[],D=[],E=0,F=0,G=0;for(r=A.Hooks.fixColors(r),p=A.Hooks.fixColors(p);z=4&&"("===H?E++:(E&&E<5||E>=4&&")"===H&&--E<5)&&(E=0),0===F&&"r"===H||1===F&&"g"===H||2===F&&"b"===H||3===F&&"a"===H||F>=3&&"("===H?(3===F&&"a"===H&&(G=1),F++):G&&","===H?++G>3&&(F=G=0):(G&&F<(G?5:4)||F>=(G?4:3)&&")"===H&&--F<(G?5:4))&&(F=G=0)}}z===r.length&&B===p.length||(y.debug&&console.error('Trying to pattern match mis-matched strings ["'+p+'", "'+r+'"]'),g=d),g&&(C.length?(y.debug&&console.log('Pattern found "'+g+'" -> ',C,D,"["+r+","+p+"]"),r=C,p=D,t=v=""):g=d)}g||(s=x(e,r),r=s[0],v=s[1],s=x(e,p),p=s[0].replace(/^([+-\/*])=/,function(a,b){return w=b,""}),t=s[1],r=parseFloat(r)||0,p=parseFloat(p)||0,"%"===t&&(/^(fontSize|lineHeight)$/.test(e)?(p/=100,t="em"):/^scale/.test(e)?(p/=100,t=""):/(Red|Green|Blue)$/i.test(e)&&(p=p/100*255,t="")));if(/[\/*]/.test(w))t=v;else if(v!==t&&0!==r)if(0===p)t=v;else{h=h||function(){var d={myParent:a.parentNode||c.body,position:A.getPropertyValue(a,"position"),fontSize:A.getPropertyValue(a,"fontSize")},e=d.position===M.lastPosition&&d.myParent===M.lastParent,f=d.fontSize===M.lastFontSize;M.lastParent=d.myParent,M.lastPosition=d.position,M.lastFontSize=d.fontSize;var g={};if(f&&e)g.emToPx=M.lastEmToPx,g.percentToPxWidth=M.lastPercentToPxWidth,g.percentToPxHeight=M.lastPercentToPxHeight;else{var h=k&&k.isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");y.init(h),d.myParent.appendChild(h),o.each(["overflow","overflowX","overflowY"],function(a,b){y.CSS.setPropertyValue(h,b,"hidden")}),y.CSS.setPropertyValue(h,"position",d.position),y.CSS.setPropertyValue(h,"fontSize",d.fontSize),y.CSS.setPropertyValue(h,"boxSizing","content-box"),o.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){y.CSS.setPropertyValue(h,b,"100%")}),y.CSS.setPropertyValue(h,"paddingLeft","100em"),g.percentToPxWidth=M.lastPercentToPxWidth=(parseFloat(A.getPropertyValue(h,"width",null,!0))||1)/100,g.percentToPxHeight=M.lastPercentToPxHeight=(parseFloat(A.getPropertyValue(h,"height",null,!0))||1)/100,g.emToPx=M.lastEmToPx=(parseFloat(A.getPropertyValue(h,"paddingLeft"))||1)/100,d.myParent.removeChild(h)}return null===M.remToPx&&(M.remToPx=parseFloat(A.getPropertyValue(c.body,"fontSize"))||16),null===M.vwToPx&&(M.vwToPx=parseFloat(b.innerWidth)/100,M.vhToPx=parseFloat(b.innerHeight)/100),g.remToPx=M.remToPx,g.vwToPx=M.vwToPx,g.vhToPx=M.vhToPx,y.debug>=1&&console.log("Unit ratios: "+JSON.stringify(g),a),g}();var S=/margin|padding|left|right|width|text|word|letter/i.test(e)||/X$/.test(e)||"x"===e?"x":"y";switch(v){case"%":r*="x"===S?h.percentToPxWidth:h.percentToPxHeight;break;case"px":break;default:r*=h[v+"ToPx"]}switch(t){case"%":r*=1/("x"===S?h.percentToPxWidth:h.percentToPxHeight);break;case"px":break;default:r*=1/h[t+"ToPx"]}}switch(w){case"+":p=r+p;break;case"-":p=r-p;break;case"*":p*=r;break;case"/":p=r/p}j[e]={rootPropertyValue:m,startValue:r,currentValue:r,endValue:p,unitType:t,easing:q},g&&(j[e].pattern=g),y.debug&&console.log("tweensContainer ("+e+"): "+JSON.stringify(j[e]),a)};for(var I in s)if(s.hasOwnProperty(I)){var J=A.Names.camelCase(I),K=function(b,c){var d,f,g;return u.isFunction(b)&&(b=b.call(a,e,C)),u.isArray(b)?(d=b[0],!u.isArray(b[1])&&/^[\d-]/.test(b[1])||u.isFunction(b[1])||A.RegEx.isHex.test(b[1])?g=b[1]:u.isString(b[1])&&!A.RegEx.isHex.test(b[1])&&y.Easings[b[1]]||u.isArray(b[1])?(f=c?b[1]:l(b[1],i.duration),g=b[2]):g=b[1]||b[2]):d=b,c||(f=f||i.easing),u.isFunction(d)&&(d=d.call(a,e,C)),u.isFunction(g)&&(g=g.call(a,e,C)),[d||0,f,g]}(s[I]);if(t(A.Lists.colors,J)){var L=K[0],O=K[1],P=K[2];if(A.RegEx.isHex.test(L)){for(var Q=["Red","Green","Blue"],R=A.Values.hexToRgb(L),S=P?A.Values.hexToRgb(P):d,T=0;Tarticle,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}"; -c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| -"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); -if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d #mq-test-1 { width: 42px; }',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b= topOffset) { + $metaBox.addClass("sticky").attr("style", "left: " + leftOffset + "px"); + } else { + $metaBox.removeClass("sticky").removeAttr("style"); + } + }; + + $(function(){ var $metaBox = $('#spr__meta-box'); if (!$metaBox.length) return; registerClickForTabsInMetaBox($metaBox); + + var topOffset = $metaBox.offset().top; + window.onscroll = function () { + // check while scrolling, or window resizing will break horizontal positioning + var leftOffset = $metaBox.offset().left; + stickyBox($metaBox, topOffset, leftOffset) + }; }); diff --git a/js/sidebar.js b/js/sidebar.js index bb33be1..86036f6 100644 --- a/js/sidebar.js +++ b/js/sidebar.js @@ -124,7 +124,6 @@ jQuery(function () { ; $toggler = jQuery('