Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 15b7ab6120 | |||
| a63fdb8466 | |||
| a02ad504d2 | |||
| c4a30a17ea | |||
| 54a4b50c1b | |||
| 234acc8a01 |
@@ -1,8 +0,0 @@
|
||||
root=true
|
||||
|
||||
[*]
|
||||
charset=utf-8
|
||||
indent_style=space
|
||||
|
||||
[Makefile]
|
||||
indent_style=tab
|
||||
@@ -1,7 +0,0 @@
|
||||
dist/
|
||||
.sass-cache/
|
||||
.jekyll-metadata
|
||||
.jekyll-cache
|
||||
.DS_Store
|
||||
Gemfile.lock
|
||||
*.gem
|
||||
@@ -1,19 +0,0 @@
|
||||
stages:
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
GIT_DEPTH: 1
|
||||
|
||||
|
||||
pages:
|
||||
image: jekyll/jekyll:4
|
||||
stage: deploy
|
||||
script:
|
||||
- jekyll build -d public
|
||||
- apk add gzip --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
|
||||
- gzip -v -k -6 $(find public -name '*.js' -o -name '*.html' -o -name '*.css')
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- master
|
||||
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Autonomic Co-operative</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/html5shiv.js"></script><![endif]-->
|
||||
<link rel="stylesheet" href="/assets/styles/main.css" />
|
||||
<!--[if lte IE 8]><link rel="stylesheet" href="/assets/css/ie8.css" /><![endif]-->
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="/assets/css/ie9.css" /><![endif]-->
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<header id="header" >
|
||||
<h1><a href="/">Autonomic</a></h1>
|
||||
<nav id="nav">
|
||||
<ul>
|
||||
<li class="special">
|
||||
<a href="#menu" class="menuToggle"><span>Menu</span></a>
|
||||
<div id="menu">
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/#core-values">Our Core Values</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/#services">Services We Offer</a></li>
|
||||
<li><a href="/#contact">Get In Touch</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
|
||||
<div id="main">
|
||||
<header>
|
||||
|
||||
<h2>Oops, Page Missing :|</h2>
|
||||
<p></p>
|
||||
</header>
|
||||
</div>
|
||||
|
||||
<section class="wrapper alt style2">
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<ul class="icons">
|
||||
|
||||
<li><a href="https://twitter.com/autonomiccoop" class="icon fa-twitter" target="_blank"><span class="label">Twitter</span></a></li>
|
||||
|
||||
<li><a href="https://gitlab.com/autonomic-cooperative" class="icon fa-gitlab" target="_blank"><span class="label">GitLab</span></a></li>
|
||||
|
||||
</ul>
|
||||
<ul class="copyright">
|
||||
<li class="icon fa-creative-commons"> Autonomic Co-operative</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="/assets/js/jquery.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrollex.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrolly.min.js"></script>
|
||||
<script src="/assets/js/skel.min.js"></script>
|
||||
<script src="/assets/js/util.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/respond.min.js"></script><![endif]-->
|
||||
<script src="/assets/js/main.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
<!-- Piwik -->
|
||||
<script type="text/javascript">
|
||||
var _paq = _paq || [];
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
_paq.push(['setTrackerUrl', 'https://api-183ae21d2fb4215fa8fb3bbf13fbda21.autonomic.sandcats.io']);
|
||||
_paq.push(['setSiteId', 1]);
|
||||
_paq.push(['setApiToken', '6X45HLvJ0KWNiLTlhbZ-uuhZcXfg9n3bDauHalRZMSh']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://6aurs6uetbyvpubfuh5y.autonomic.sandcats.io/embed.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<!-- End Piwik Code -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,24 +0,0 @@
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file. The format
|
||||
is based on [Keep a Changelog] and this project adheres to [Semantic Versioning].
|
||||
|
||||
[Keep a Changelog]: http://keepachangelog.com/en/1.0.0/
|
||||
[Semantic Versioning]: http://semver.org/spec/v2.0.0.html
|
||||
|
||||
## [1.0.2] - 2017-11-05
|
||||
|
||||
## Added
|
||||
- [#18]: Add shared account email.
|
||||
|
||||
[#18]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/merge_requests/18
|
||||
|
||||
## [1.0.1] - 2017-10-14
|
||||
|
||||
## Added
|
||||
- [#17]: Added automated Gitlab CI production builds.
|
||||
|
||||
[#17]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/merge_requests/17
|
||||
|
||||
## [1.0.0] - 2017-10-04
|
||||
- Initial Release
|
||||
@@ -1,65 +0,0 @@
|
||||
# Contributing
|
||||
|
||||
### Not that these instructions may be out of date. If you find any quirks that aren't described in this file, please make patches.
|
||||
|
||||
# What Is Jekyll
|
||||
|
||||
For those unfamiliar with how Jekyll works, check out [jekyll.rb] for all the
|
||||
details, or read up on the basics of [front matter], [writing posts] and
|
||||
[creating pages].
|
||||
|
||||
[jekyll.rb]: https://jekyllrb.com/
|
||||
[front matter]: https://jekyllrb.com/docs/frontmatter/
|
||||
[writing posts]: https://jekyllrb.com/docs/posts/
|
||||
[creating pages]: https://jekyllrb.com/docs/pages/
|
||||
|
||||
# Using RVM to Manage Ruby
|
||||
|
||||
In order to not blow up your computer handling a system wide Ruby installation, it is
|
||||
advised that you use [RVM](https://rvm.io/rvm/install).
|
||||
|
||||
Once you've got that installed and configured, get the latest version of Ruby with:
|
||||
|
||||
```bash
|
||||
$ rvm install 2.6.5
|
||||
```
|
||||
|
||||
Select that version and then create an isolated [gemset](https://rvm.io/gemsets/basics) with:
|
||||
|
||||
```bash
|
||||
$ rvm use 2.6.5
|
||||
$ rvm gemset create autonomic
|
||||
$ rvm gemset use autonomic
|
||||
```
|
||||
|
||||
# Install Dependencies
|
||||
|
||||
Then you can install your Ruby dependencies with:
|
||||
|
||||
``` bash
|
||||
$ gem install jekyll bundler
|
||||
$ bundle install
|
||||
```
|
||||
|
||||
# Serve Website
|
||||
|
||||
And serve the website locally with:
|
||||
|
||||
``` bash
|
||||
$ make devserver
|
||||
```
|
||||
|
||||
# Editing Content
|
||||
|
||||
Edit content in the `.md` files under `src` and `src/_posts`.
|
||||
|
||||
# Next time
|
||||
|
||||
When you're hacking later on (or in a new shell), you'll need to run:
|
||||
|
||||
``` bash
|
||||
$ rvm use 2.6.5
|
||||
$ rvm gemset use autonomic
|
||||
```
|
||||
|
||||
And then you'll have access to the environment.
|
||||
@@ -1,259 +0,0 @@
|
||||
Creative Commons Attribution 3.0 Unported
|
||||
http://creativecommons.org/licenses/by/3.0/
|
||||
|
||||
License
|
||||
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
|
||||
BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE
|
||||
CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE
|
||||
IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
|
||||
|
||||
1. Definitions
|
||||
|
||||
1. "Adaptation" means a work based upon the Work, or upon the Work and other
|
||||
pre-existing works, such as a translation, adaptation, derivative work,
|
||||
arrangement of music or other alterations of a literary or artistic work, or
|
||||
phonogram or performance and includes cinematographic adaptations or any
|
||||
other form in which the Work may be recast, transformed, or adapted
|
||||
including in any form recognizably derived from the original, except that a
|
||||
work that constitutes a Collection will not be considered an Adaptation for
|
||||
the purpose of this License. For the avoidance of doubt, where the Work is a
|
||||
musical work, performance or phonogram, the synchronization of the Work in
|
||||
timed-relation with a moving image ("synching") will be considered an
|
||||
Adaptation for the purpose of this License. 2. "Collection" means a
|
||||
collection of literary or artistic works, such as encyclopedias and
|
||||
anthologies, or performances, phonograms or broadcasts, or other works or
|
||||
subject matter other than works listed in Section 1(f) below, which, by
|
||||
reason of the selection and arrangement of their contents, constitute
|
||||
intellectual creations, in which the Work is included in its entirety in
|
||||
unmodified form along with one or more other contributions, each
|
||||
constituting separate and independent works in themselves, which together
|
||||
are assembled into a collective whole. A work that constitutes a Collection
|
||||
will not be considered an Adaptation (as defined above) for the purposes of
|
||||
this License. 3. "Distribute" means to make available to the public the
|
||||
original and copies of the Work or Adaptation, as appropriate, through sale
|
||||
or other transfer of ownership. 4. "Licensor" means the individual,
|
||||
individuals, entity or entities that offer(s) the Work under the terms of
|
||||
this License. 5. "Original Author" means, in the case of a literary or
|
||||
artistic work, the individual, individuals, entity or entities who created
|
||||
the Work or if no individual or entity can be identified, the publisher; and
|
||||
in addition (i) in the case of a performance the actors, singers, musicians,
|
||||
dancers, and other persons who act, sing, deliver, declaim, play in,
|
||||
interpret or otherwise perform literary or artistic works or expressions of
|
||||
folklore; (ii) in the case of a phonogram the producer being the person or
|
||||
legal entity who first fixes the sounds of a performance or other sounds;
|
||||
and, (iii) in the case of broadcasts, the organization that transmits the
|
||||
broadcast. 6. "Work" means the literary and/or artistic work offered under
|
||||
the terms of this License including without limitation any production in the
|
||||
literary, scientific and artistic domain, whatever may be the mode or form
|
||||
of its expression including digital form, such as a book, pamphlet and other
|
||||
writing; a lecture, address, sermon or other work of the same nature; a
|
||||
dramatic or dramatico-musical work; a choreographic work or entertainment in
|
||||
dumb show; a musical composition with or without words; a cinematographic
|
||||
work to which are assimilated works expressed by a process analogous to
|
||||
cinematography; a work of drawing, painting, architecture, sculpture,
|
||||
engraving or lithography; a photographic work to which are assimilated works
|
||||
expressed by a process analogous to photography; a work of applied art; an
|
||||
illustration, map, plan, sketch or three-dimensional work relative to
|
||||
geography, topography, architecture or science; a performance; a broadcast;
|
||||
a phonogram; a compilation of data to the extent it is protected as a
|
||||
copyrightable work; or a work performed by a variety or circus performer to
|
||||
the extent it is not otherwise considered a literary or artistic work. 7.
|
||||
"You" means an individual or entity exercising rights under this License who
|
||||
has not previously violated the terms of this License with respect to the
|
||||
Work, or who has received express permission from the Licensor to exercise
|
||||
rights under this License despite a previous violation. 8. "Publicly
|
||||
Perform" means to perform public recitations of the Work and to communicate
|
||||
to the public those public recitations, by any means or process, including
|
||||
by wire or wireless means or public digital performances; to make available
|
||||
to the public Works in such a way that members of the public may access
|
||||
these Works from a place and at a place individually chosen by them; to
|
||||
perform the Work to the public by any means or process and the communication
|
||||
to the public of the performances of the Work, including by public digital
|
||||
performance; to broadcast and rebroadcast the Work by any means including
|
||||
signs, sounds or images. 9. "Reproduce" means to make copies of the Work by
|
||||
any means including without limitation by sound or visual recordings and the
|
||||
right of fixation and reproducing fixations of the Work, including storage
|
||||
of a protected performance or phonogram in digital form or other electronic
|
||||
medium.
|
||||
|
||||
2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit,
|
||||
or restrict any uses free from copyright or rights arising from limitations or
|
||||
exceptions that are provided for in connection with the copyright protection
|
||||
under copyright law or other applicable laws.
|
||||
|
||||
3. License Grant. Subject to the terms and conditions of this License, Licensor
|
||||
hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the
|
||||
duration of the applicable copyright) license to exercise the rights in the
|
||||
Work as stated below:
|
||||
|
||||
1. to Reproduce the Work, to incorporate the Work into one or more
|
||||
Collections, and to Reproduce the Work as incorporated in the Collections;
|
||||
2. to create and Reproduce Adaptations provided that any such Adaptation,
|
||||
including any translation in any medium, takes reasonable steps to clearly
|
||||
label, demarcate or otherwise identify that changes were made to the
|
||||
original Work. For example, a translation could be marked "The original work
|
||||
was translated from English to Spanish," or a modification could indicate
|
||||
"The original work has been modified."; 3. to Distribute and Publicly
|
||||
Perform the Work including as incorporated in Collections; and, 4. to
|
||||
Distribute and Publicly Perform Adaptations. 5.
|
||||
|
||||
For the avoidance of doubt: 1. Non-waivable Compulsory License Schemes.
|
||||
In those jurisdictions in which the right to collect royalties through
|
||||
any statutory or compulsory licensing scheme cannot be waived, the
|
||||
Licensor reserves the exclusive right to collect such royalties for any
|
||||
exercise by You of the rights granted under this License; 2. Waivable
|
||||
Compulsory License Schemes. In those jurisdictions in which the right to
|
||||
collect royalties through any statutory or compulsory licensing scheme
|
||||
can be waived, the Licensor waives the exclusive right to collect such
|
||||
royalties for any exercise by You of the rights granted under this
|
||||
License; and, 3. Voluntary License Schemes. The Licensor waives the right
|
||||
to collect royalties, whether individually or, in the event that the
|
||||
Licensor is a member of a collecting society that administers voluntary
|
||||
licensing schemes, via that society, from any exercise by You of the
|
||||
rights granted under this License.
|
||||
|
||||
The above rights may be exercised in all media and formats whether now known or
|
||||
hereafter devised. The above rights include the right to make such
|
||||
modifications as are technically necessary to exercise the rights in other
|
||||
media and formats. Subject to Section 8(f), all rights not expressly granted by
|
||||
Licensor are hereby reserved.
|
||||
|
||||
4. Restrictions. The license granted in Section 3 above is expressly made
|
||||
subject to and limited by the following restrictions:
|
||||
|
||||
1. You may Distribute or Publicly Perform the Work only under the terms of
|
||||
this License. You must include a copy of, or the Uniform Resource Identifier
|
||||
(URI) for, this License with every copy of the Work You Distribute or
|
||||
Publicly Perform. You may not offer or impose any terms on the Work that
|
||||
restrict the terms of this License or the ability of the recipient of the
|
||||
Work to exercise the rights granted to that recipient under the terms of the
|
||||
License. You may not sublicense the Work. You must keep intact all notices
|
||||
that refer to this License and to the disclaimer of warranties with every
|
||||
copy of the Work You Distribute or Publicly Perform. When You Distribute or
|
||||
Publicly Perform the Work, You may not impose any effective technological
|
||||
measures on the Work that restrict the ability of a recipient of the Work
|
||||
from You to exercise the rights granted to that recipient under the terms of
|
||||
the License. This Section 4(a) applies to the Work as incorporated in a
|
||||
Collection, but this does not require the Collection apart from the Work
|
||||
itself to be made subject to the terms of this License. If You create a
|
||||
Collection, upon notice from any Licensor You must, to the extent
|
||||
practicable, remove from the Collection any credit as required by Section
|
||||
4(b), as requested. If You create an Adaptation, upon notice from any
|
||||
Licensor You must, to the extent practicable, remove from the Adaptation any
|
||||
credit as required by Section 4(b), as requested. 2. If You Distribute, or
|
||||
Publicly Perform the Work or any Adaptations or Collections, You must,
|
||||
unless a request has been made pursuant to Section 4(a), keep intact all
|
||||
copyright notices for the Work and provide, reasonable to the medium or
|
||||
means You are utilizing: (i) the name of the Original Author (or pseudonym,
|
||||
if applicable) if supplied, and/or if the Original Author and/or Licensor
|
||||
designate another party or parties (e.g., a sponsor institute, publishing
|
||||
entity, journal) for attribution ("Attribution Parties") in Licensor's
|
||||
copyright notice, terms of service or by other reasonable means, the name of
|
||||
such party or parties; (ii) the title of the Work if supplied; (iii) to the
|
||||
extent reasonably practicable, the URI, if any, that Licensor specifies to
|
||||
be associated with the Work, unless such URI does not refer to the copyright
|
||||
notice or licensing information for the Work; and (iv) , consistent with
|
||||
Section 3(b), in the case of an Adaptation, a credit identifying the use of
|
||||
the Work in the Adaptation (e.g., "French translation of the Work by
|
||||
Original Author," or "Screenplay based on original Work by Original
|
||||
Author"). The credit required by this Section 4 (b) may be implemented in
|
||||
any reasonable manner; provided, however, that in the case of a Adaptation
|
||||
or Collection, at a minimum such credit will appear, if a credit for all
|
||||
contributing authors of the Adaptation or Collection appears, then as part
|
||||
of these credits and in a manner at least as prominent as the credits for
|
||||
the other contributing authors. For the avoidance of doubt, You may only use
|
||||
the credit required by this Section for the purpose of attribution in the
|
||||
manner set out above and, by exercising Your rights under this License, You
|
||||
may not implicitly or explicitly assert or imply any connection with,
|
||||
sponsorship or endorsement by the Original Author, Licensor and/or
|
||||
Attribution Parties, as appropriate, of You or Your use of the Work, without
|
||||
the separate, express prior written permission of the Original Author,
|
||||
Licensor and/or Attribution Parties. 3. Except as otherwise agreed in
|
||||
writing by the Licensor or as may be otherwise permitted by applicable law,
|
||||
if You Reproduce, Distribute or Publicly Perform the Work either by itself
|
||||
or as part of any Adaptations or Collections, You must not distort,
|
||||
mutilate, modify or take other derogatory action in relation to the Work
|
||||
which would be prejudicial to the Original Author's honor or reputation.
|
||||
Licensor agrees that in those jurisdictions (e.g. Japan), in which any
|
||||
exercise of the right granted in Section 3(b) of this License (the right to
|
||||
make Adaptations) would be deemed to be a distortion, mutilation,
|
||||
modification or other derogatory action prejudicial to the Original Author's
|
||||
honor and reputation, the Licensor will waive or not assert, as appropriate,
|
||||
this Section, to the fullest extent permitted by the applicable national
|
||||
law, to enable You to reasonably exercise Your right under Section 3(b) of
|
||||
this License (right to make Adaptations) but not otherwise.
|
||||
|
||||
5. Representations, Warranties and Disclaimer
|
||||
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
|
||||
THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
|
||||
CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING,
|
||||
WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE.
|
||||
SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH
|
||||
EXCLUSION MAY NOT APPLY TO YOU.
|
||||
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN
|
||||
NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS
|
||||
LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. Termination
|
||||
|
||||
1. This License and the rights granted hereunder will terminate
|
||||
automatically upon any breach by You of the terms of this License.
|
||||
Individuals or entities who have received Adaptations or Collections from
|
||||
You under this License, however, will not have their licenses terminated
|
||||
provided such individuals or entities remain in full compliance with those
|
||||
licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this
|
||||
License. 2. Subject to the above terms and conditions, the license granted
|
||||
here is perpetual (for the duration of the applicable copyright in the
|
||||
Work). Notwithstanding the above, Licensor reserves the right to release the
|
||||
Work under different license terms or to stop distributing the Work at any
|
||||
time; provided, however that any such election will not serve to withdraw
|
||||
this License (or any other license that has been, or is required to be,
|
||||
granted under the terms of this License), and this License will continue in
|
||||
full force and effect unless terminated as stated above.
|
||||
|
||||
8. Miscellaneous
|
||||
|
||||
1. Each time You Distribute or Publicly Perform the Work or a Collection,
|
||||
the Licensor offers to the recipient a license to the Work on the same terms
|
||||
and conditions as the license granted to You under this License. 2. Each
|
||||
time You Distribute or Publicly Perform an Adaptation, Licensor offers to
|
||||
the recipient a license to the original Work on the same terms and
|
||||
conditions as the license granted to You under this License. 3. If any
|
||||
provision of this License is invalid or unenforceable under applicable law,
|
||||
it shall not affect the validity or enforceability of the remainder of the
|
||||
terms of this License, and without further action by the parties to this
|
||||
agreement, such provision shall be reformed to the minimum extent necessary
|
||||
to make such provision valid and enforceable. 4. No term or provision of
|
||||
this License shall be deemed waived and no breach consented to unless such
|
||||
waiver or consent shall be in writing and signed by the party to be charged
|
||||
with such waiver or consent. 5. This License constitutes the entire
|
||||
agreement between the parties with respect to the Work licensed here. There
|
||||
are no understandings, agreements or representations with respect to the
|
||||
Work not specified here. Licensor shall not be bound by any additional
|
||||
provisions that may appear in any communication from You. This License may
|
||||
not be modified without the mutual written agreement of the Licensor and
|
||||
You. 6. The rights granted under, and the subject matter referenced, in
|
||||
this License were drafted utilizing the terminology of the Berne Convention
|
||||
for the Protection of Literary and Artistic Works (as amended on September
|
||||
28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996,
|
||||
the WIPO Performances and Phonograms Treaty of 1996 and the Universal
|
||||
Copyright Convention (as revised on July 24, 1971). These rights and subject
|
||||
matter take effect in the relevant jurisdiction in which the License terms
|
||||
are sought to be enforced according to the corresponding provisions of the
|
||||
implementation of those treaty provisions in the applicable national law. If
|
||||
the standard suite of rights granted under applicable copyright law includes
|
||||
additional rights not granted under this License, such additional rights are
|
||||
deemed to be included in the License; this License is not intended to
|
||||
restrict the license of any rights under applicable law.
|
||||
@@ -1,6 +0,0 @@
|
||||
DEV_DIST_DIR:=dist
|
||||
|
||||
devserver:
|
||||
@echo "Serving development site from $(DEV_DIST_DIR)"
|
||||
@jekyll serve --watch --incremental --destination $(DEV_DIST_DIR)
|
||||
.PHONY: devserver
|
||||
@@ -1,29 +0,0 @@
|
||||
[](https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/commits/master)
|
||||
|
||||
# autonomic.zone
|
||||
|
||||
A [Jekyll] based site for the Autonomic Cooperative. The site is based on the [spectral-jekyll-theme] template.
|
||||
|
||||
master is served up to [autonomic.zone] and [autonomic-cooperative.gitlab.io].
|
||||
|
||||
[Jekyll]: https://jekyllrb.com/
|
||||
[spectral-jekyll-theme]: https://github.com/andrewbanchich/spectral-jekyll-theme
|
||||
[autonomic.zone]: https://autonomic.zone/
|
||||
[autonomic-cooperative.gitlab.io]: http://autonomic-cooperative.gitlab.io/
|
||||
|
||||
# Make a change
|
||||
|
||||
Work on features in branches. If you commit to master, open a merge request from your branch unless it is a tiny change. Our [pages] CI stage will push any changes on master branch to [autonomic.zone].
|
||||
|
||||
[deploy]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/blob/d16aec42bd2ddd7449f55d9f06b03499cc660b22/.gitlab-ci.yml#L17
|
||||
|
||||
Watch the [CI/CD pipeline] to see that it builds successfully.
|
||||
|
||||
[CI/CD pipeline]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/pipelines
|
||||
|
||||
|
||||
# Contribute
|
||||
|
||||
Please see [CONTRIBUTING.md] for the juicy details. It may need to be updated, so please submit patches if you discover some quirk!
|
||||
|
||||
[CONTRIBUTING.md]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/blob/master/CONTRIBUTING.md
|
||||
@@ -1,26 +0,0 @@
|
||||
title: Autonomic Co-operative
|
||||
email: helo@autonomic.zone
|
||||
description: Sustainability, Transparency, Privacy
|
||||
baseurl: ""
|
||||
url: ""
|
||||
source: src
|
||||
destination: dist
|
||||
sass:
|
||||
sass_dir: ./assets/styles
|
||||
featured-image-source:
|
||||
500px_url:
|
||||
github_url:
|
||||
mastodon_url: https://sunbeam.city/@autonomic
|
||||
twitter_url: https://twitter.com/autonomiccoop
|
||||
markdown: kramdown
|
||||
permalink: pretty
|
||||
collections:
|
||||
posts:
|
||||
output: true
|
||||
permalink: /blog/:title/
|
||||
clients:
|
||||
output: false
|
||||
exclude:
|
||||
- vendor
|
||||
- Gemfile
|
||||
- Gemfile.lock
|
||||
|
After Width: | Height: | Size: 668 KiB |
@@ -0,0 +1,265 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="devise-layout-html">
|
||||
<head prefix="og: http://ogp.me/ns#">
|
||||
<meta charset="utf-8">
|
||||
<meta content="IE=edge" http-equiv="X-UA-Compatible">
|
||||
<meta content="object" property="og:type">
|
||||
<meta content="GitLab" property="og:site_name">
|
||||
<meta content="Sign in" property="og:title">
|
||||
<meta content="GitLab.com" property="og:description">
|
||||
<meta content="https://gitlab.com/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png" property="og:image">
|
||||
<meta content="64" property="og:image:width">
|
||||
<meta content="64" property="og:image:height">
|
||||
<meta content="https://gitlab.com/users/sign_in" property="og:url">
|
||||
<meta content="summary" property="twitter:card">
|
||||
<meta content="Sign in" property="twitter:title">
|
||||
<meta content="GitLab.com" property="twitter:description">
|
||||
<meta content="https://gitlab.com/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png" property="twitter:image">
|
||||
|
||||
<title>Sign in · GitLab</title>
|
||||
<meta content="GitLab.com" name="description">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/assets/favicon-075eba76312e8421991a0c1f89a89ee81678bcde72319dd3e8047e2a47cd3a42.ico" id="favicon" />
|
||||
<link rel="stylesheet" media="all" href="/assets/application-61d4cb7e100f2fac8ccaeac5e18d08f97554f0639e84004165d6f9697cfbe08c.css" />
|
||||
<link rel="stylesheet" media="print" href="/assets/print-74b3d49adeaada27337e759b75a34af7cf3d80051de91d60d40570f5a382e132.css" />
|
||||
|
||||
|
||||
<!-- / TODO: Combine these 2 stylesheets into application.scss -->
|
||||
<link rel="stylesheet" media="all" href="/assets/new_nav-9dc36451d6461185b3c501b73a23f48936cda9ee5b0b8f9b1001c951ce12eabf.css" />
|
||||
<link rel="stylesheet" media="all" href="/assets/new_sidebar-1f383f3cb338b8ecf8062dab06052141f414f51165f656b97a0930c0d38cd7dc.css" />
|
||||
<script>
|
||||
//<![CDATA[
|
||||
window.gon={};gon.api_version="v4";gon.default_avatar_url="https:\/\/gitlab.com\/assets\/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png";gon.max_file_size=10;gon.asset_host=null;gon.webpack_public_path="\/assets\/webpack\/";gon.relative_url_root="";gon.shortcuts_path="\/help\/shortcuts";gon.user_color_scheme="white";gon.katex_css_url="\/assets\/katex-dc07578acd203b2dd73a8c78cdb8dcb79144ba11a23749d80904496b7ff8a650.css";gon.katex_js_url="\/assets\/katex-04bcf56379fcda0ee7c7a63f71d0fc15ffd2e014d017cd9d51fd6554dfccf40a.js";gon.sentry_dsn="https:\/\/526a2f38a53d44e3a8e69bfa001d1e8b@sentry.gitlap.com\/15";gon.gitlab_url="https:\/\/gitlab.com";gon.revision="235b8d5";gon.gitlab_logo="\/assets\/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png";
|
||||
//]]>
|
||||
</script>
|
||||
<script src="/assets/webpack/webpack_runtime.294a69f1dca44b9962ff.bundle.js" defer="defer"></script>
|
||||
<script src="/assets/webpack/common.c04294b903455a34f707.bundle.js" defer="defer"></script>
|
||||
<script src="/assets/webpack/locale.b9a56fbc6e00d576d16c.bundle.js" defer="defer"></script>
|
||||
<script src="/assets/webpack/main.78a00e6bb497a127e58c.bundle.js" defer="defer"></script>
|
||||
<script src="/assets/webpack/raven.c94699aec8e665da5599.bundle.js" defer="defer"></script>
|
||||
|
||||
|
||||
|
||||
<meta name="csrf-param" content="authenticity_token" />
|
||||
<meta name="csrf-token" content="wsHK8up7MLWg48uVbcNYE7pk+TDs3OQ3y4e9l2k39xoa8OscEyQq+4SeumcbjMwNOvnHnyNl7Lod0aiJn1AEYA==" />
|
||||
<meta content="origin-when-cross-origin" name="referrer">
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
|
||||
<meta content="#474D57" name="theme-color">
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-iphone-5a9cee0e8a51212e70b90c87c12f382c428870c0ff67d1eb034d884b78d2dae7.png" />
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-ipad-a6eec6aeb9da138e507593b464fdac213047e49d3093fc30e90d9a995df83ba3.png" sizes="76x76" />
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-iphone-retina-72e2aadf86513a56e050e7f0f2355deaa19cc17ed97bbe5147847f2748e5a3e3.png" sizes="120x120" />
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="/assets/touch-icon-ipad-retina-8ebe416f5313483d9c1bc772b5bbe03ecad52a54eba443e5215a22caed2a16a2.png" sizes="152x152" />
|
||||
<link color="rgb(226, 67, 41)" href="/assets/logo-d36b5212042cebc89b96df4bf6ac24e43db316143e89926c0db839ff694d2de4.svg" rel="mask-icon">
|
||||
<meta content="/assets/msapplication-tile-1196ec67452f618d39cdd85e2e3a542f76574c071051ae7effbfde01710eb17d.png" name="msapplication-TileImage">
|
||||
<meta content="#30353E" name="msapplication-TileColor">
|
||||
|
||||
|
||||
<!-- Piwik -->
|
||||
<script>
|
||||
var _paq = _paq || [];
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="//piwik.gitlab.com/";
|
||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||
_paq.push(['setSiteId', 1]);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<noscript><p><img src="//piwik.gitlab.com/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>
|
||||
<!-- End Piwik Code -->
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body class="ui_charcoal login-page application navless" data-page="sessions:new">
|
||||
<div class="page-wrap">
|
||||
<header class="navbar navbar-fixed-top navbar-empty">
|
||||
<div class="container">
|
||||
<div class="center-logo">
|
||||
<svg width="24" height="24" class="tanuki-logo" viewBox="0 0 36 36">
|
||||
<path class="tanuki-shape tanuki-left-ear" fill="#e24329" d="M2 14l9.38 9v-9l-4-12.28c-.205-.632-1.176-.632-1.38 0z"/>
|
||||
<path class="tanuki-shape tanuki-right-ear" fill="#e24329" d="M34 14l-9.38 9v-9l4-12.28c.205-.632 1.176-.632 1.38 0z"/>
|
||||
<path class="tanuki-shape tanuki-nose" fill="#e24329" d="M18,34.38 3,14 33,14 Z"/>
|
||||
<path class="tanuki-shape tanuki-left-eye" fill="#fc6d26" d="M18,34.38 11.38,14 2,14 6,25Z"/>
|
||||
<path class="tanuki-shape tanuki-right-eye" fill="#fc6d26" d="M18,34.38 24.62,14 34,14 30,25Z"/>
|
||||
<path class="tanuki-shape tanuki-left-cheek" fill="#fca326" d="M2 14L.1 20.16c-.18.565 0 1.2.5 1.56l17.42 12.66z"/>
|
||||
<path class="tanuki-shape tanuki-right-cheek" fill="#fca326" d="M34 14l1.9 6.16c.18.565 0 1.2-.5 1.56L18 34.38z"/>
|
||||
</svg>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
<div class="container navless-container">
|
||||
<div class="content">
|
||||
<div class="flash-container flash-container-page">
|
||||
<div class="flash-alert">
|
||||
<div class="container-fluid container-limited">
|
||||
<span>You need to sign in or sign up before continuing.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-5 pull-right new-session-forms-container">
|
||||
<div>
|
||||
<ul class="nav-links new-session-tabs nav-tabs" role="tablist">
|
||||
<li class="active" role="presentation">
|
||||
<a data-toggle="tab" href="#login-pane" role="tab">Sign in</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a data-toggle="tab" href="#register-pane" role="tab">Register</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="login-box tab-pane active" id="login-pane" role="tabpanel">
|
||||
<div class="login-body">
|
||||
<form class="new_user gl-show-field-errors" aria-live="assertive" id="new_user" action="/users/sign_in" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="aviQVpjjnwWyU0/d+NkgsYlxNMtli94j5+cz98Ptm/CyybG4YbyFS5YuPi+OlrSvCewKZKoy1q4xsSbpNYpoig==" /><div class="form-group">
|
||||
<label for="user_login">Username or email</label>
|
||||
<input class="form-control top" autofocus="autofocus" autocapitalize="off" autocorrect="off" required="required" title="This field is required." type="text" name="user[login]" id="user_login" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="user_password">Password</label>
|
||||
<input class="form-control bottom" required="required" title="This field is required." type="password" name="user[password]" id="user_password" />
|
||||
</div>
|
||||
<div class="remember-me checkbox">
|
||||
<label for="user_remember_me">
|
||||
<input name="user[remember_me]" type="hidden" value="0" /><input class="remember-me-checkbox" type="checkbox" value="1" name="user[remember_me]" id="user_remember_me" />
|
||||
<span>Remember me</span>
|
||||
</label>
|
||||
<div class="pull-right forgot-password">
|
||||
<a href="/users/password/new">Forgot your password?</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="submit-container move-submit-down">
|
||||
<input type="submit" name="commit" value="Sign in" class="btn btn-save" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane login-box" id="register-pane" role="tabpanel">
|
||||
<div class="login-body">
|
||||
<form class="new_new_user gl-show-field-errors" aria-live="assertive" id="new_new_user" action="/users" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="KNVgt2nO9DZYvvt0iq8qMuVtT0aWcVKL5ZapEZ7c8Jrw5EFZkJHueHzDiob84L4sZfBx6VnIWgYzwLwPaLsD4A==" /><div class="devise-errors">
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new_user_name">Full name</label>
|
||||
<input class="form-control top" required="required" title="This field is required." type="text" name="new_user[name]" id="new_user_name" />
|
||||
</div>
|
||||
<div class="username form-group">
|
||||
<label for="new_user_username">Username</label>
|
||||
<input class="form-control middle" pattern="[a-zA-Z0-9_\.][a-zA-Z0-9_\-\.]*[a-zA-Z0-9_\-]|[a-zA-Z0-9_]" required="required" title="Please create a username with only alphanumeric characters." type="text" name="new_user[username]" id="new_user_username" />
|
||||
<p class="validation-error hide">Username is already taken.</p>
|
||||
<p class="validation-success hide">Username is available.</p>
|
||||
<p class="validation-pending hide">Checking username availability...</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new_user_email">Email</label>
|
||||
<input class="form-control middle" required="required" title="Please provide a valid email address." type="email" value="" name="new_user[email]" id="new_user_email" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new_user_email_confirmation">Email confirmation</label>
|
||||
<input class="form-control middle" required="required" title="Please retype the email address." type="email" name="new_user[email_confirmation]" id="new_user_email_confirmation" />
|
||||
</div>
|
||||
<div class="form-group append-bottom-20" id="password-strength">
|
||||
<label for="new_user_password">Password</label>
|
||||
<input class="form-control bottom" required="required" pattern=".{8,}" title="Minimum length is 8 characters." type="password" name="new_user[password]" id="new_user_password" />
|
||||
<p class="gl-field-hint">Minimum length is 8 characters</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input name="new_user[email_opted_in]" type="hidden" value="0" /><input type="checkbox" value="1" name="new_user[email_opted_in]" id="new_user_email_opted_in" />
|
||||
<label for="new_user_email_opted_in">I'd like to receive updates via email about GitLab.</label>
|
||||
</div>
|
||||
|
||||
<div></div>
|
||||
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
|
||||
<div class="g-recaptcha" data-sitekey="6LfAERQTAAAAAL4GYSiAMGLbcLyUIBSfPrDNJgeC"></div>
|
||||
<noscript>
|
||||
<div style="width: 302px; height: 352px;">
|
||||
<div style="width: 302px; height: 352px; position: relative;">
|
||||
<div style="width: 302px; height: 352px; position: absolute;">
|
||||
<iframe
|
||||
src="https://www.google.com/recaptcha/api/fallback?k=6LfAERQTAAAAAL4GYSiAMGLbcLyUIBSfPrDNJgeC"
|
||||
frameborder="0" scrolling="no"
|
||||
style="width: 302px; height:352px; border-style: none;">
|
||||
</iframe>
|
||||
</div>
|
||||
<div style="width: 250px; height: 80px; position: absolute; border-style: none;
|
||||
bottom: 21px; left: 25px; margin: 0px; padding: 0px; right: 25px;">
|
||||
<textarea id="g-recaptcha-response" name="g-recaptcha-response"
|
||||
class="g-recaptcha-response"
|
||||
style="width: 250px; height: 80px; border: 1px solid #c1c1c1;
|
||||
margin: 0px; padding: 0px; resize: none;" value="">
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
|
||||
<div class="submit-container">
|
||||
<input type="submit" name="commit" value="Register" class="btn-register btn" />
|
||||
</div>
|
||||
</form></div>
|
||||
</div>
|
||||
<div class="clearfix submit-container">
|
||||
<p>
|
||||
<span class="light">Didn't receive a confirmation email?</span>
|
||||
<a href="/users/confirmation/new">Request a new one</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<div class="omniauth-container">
|
||||
<p>
|
||||
<span class="light">
|
||||
Sign in with
|
||||
</span>
|
||||
<span class="light">
|
||||
<a class="oauth-login oauth-image-link" id="oauth-login-google_oauth2" rel="nofollow" data-method="post" href="/users/auth/google_oauth2"><img alt="Google" title="Sign in with Google" data-src="/assets/auth_buttons/google_64-37d98b7033cc7059a484199ffdd766adf69babbc6e5fc64b43006ca866629f17.png" class=" lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a>
|
||||
</span>
|
||||
<span class="light">
|
||||
<a class="oauth-login oauth-image-link" id="oauth-login-twitter" rel="nofollow" data-method="post" href="/users/auth/twitter"><img alt="Twitter" title="Sign in with Twitter" data-src="/assets/auth_buttons/twitter_64-86860edb139fb2f62fc25ef62a4213a5c8b20122fd8752ab0df09e740eb53deb.png" class=" lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a>
|
||||
</span>
|
||||
<span class="light">
|
||||
<a class="oauth-login oauth-image-link" id="oauth-login-github" rel="nofollow" data-method="post" href="/users/auth/github"><img alt="GitHub" title="Sign in with GitHub" data-src="/assets/auth_buttons/github_64-84041cd0ea392220da96f0fb9b9473c08485c4924b98c776be1bd33b0daab8c0.png" class=" lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a>
|
||||
</span>
|
||||
<span class="light">
|
||||
<a class="oauth-login oauth-image-link" id="oauth-login-bitbucket" rel="nofollow" data-method="post" href="/users/auth/bitbucket"><img alt="Bitbucket" title="Sign in with Bitbucket" data-src="/assets/auth_buttons/bitbucket_64-eceb0f98bfa1a0bdc088138f970e1bc209114a8934c1372b596e9d137e611c21.png" class=" lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a>
|
||||
</span>
|
||||
<fieldset class="prepend-top-10">
|
||||
<input type="checkbox" name="remember_me" id="remember_me" value="1" />
|
||||
<label for="remember_me">Remember me</label>
|
||||
</fieldset>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-sm-7 brand-holder pull-left">
|
||||
<h1>
|
||||
GitLab.com
|
||||
</h1>
|
||||
|
||||
<p dir="auto">GitLab.com offers free unlimited (private) repositories and unlimited collaborators.</p>

<ul dir="auto">
<li>
<a href="https://gitlab.com/explore/projects/trending">Explore projects on GitLab.com</a> (no login needed)</li>
<li><a href="https://about.gitlab.com/gitlab-com/" rel="nofollow noreferrer noopener" target="_blank">More information about GitLab.com</a></li>
<li><a href="https://gitlab.com/gitlab-com/support-forum/issues">GitLab.com Support Forum</a></li>
</ul>

<p dir="auto">By signing up for and by signing in to this service you accept our:</p>

<ul dir="auto">
<li><a href="https://about.gitlab.com/privacy/" rel="nofollow noreferrer noopener" target="_blank">Privacy policy</a></li>
<li>
<a href="https://about.gitlab.com/terms/#gitlab_com" rel="nofollow noreferrer noopener" target="_blank">GitLab.com Terms</a>.</li>
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="footer-fixed">
|
||||
<div class="container footer-container">
|
||||
<div class="footer-links">
|
||||
<a href="/explore">Explore</a>
|
||||
<a href="/help">Help</a>
|
||||
<a href="https://about.gitlab.com/">About GitLab</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
@@ -0,0 +1,7 @@
|
||||
<component lightWeight="true">
|
||||
<attach event="onpropertychange" onevent="handlePropertychange()" />
|
||||
<attach event="ondetach" onevent="restore()" />
|
||||
<attach event="onresize" for="window" onevent="handleResize()" />
|
||||
<script type="text/javascript">
|
||||
var rsrc=/url\(["']?(.*?)["']?\)/,positions={top:0,left:0,bottom:1,right:1,center:0.5},doc=element.document;init(); function init(){var b=doc.createElement("div"),a=doc.createElement("img"),c,d;b.style.position="absolute";b.style.zIndex=-1;b.style.top=0;b.style.right=0;b.style.left=0;b.style.bottom=0;b.style.overflow="hidden";a.style.position="absolute";a.style.width=a.style.width="auto";b.appendChild(a);element.insertBefore(b,element.firstChild);d=[element.currentStyle.backgroundPositionX,element.currentStyle.backgroundPositionY];element.bgsExpando=c={wrapper:b,img:a,backgroundSize:element.currentStyle["background-size"], backgroundPositionX:positions[d[0]]||parseFloat(d[0])/100,backgroundPositionY:positions[d[1]]||parseFloat(d[1])/100};"auto"==element.currentStyle.zIndex&&(element.style.zIndex=0);"static"==element.currentStyle.position&&(element.style.position="relative");refreshDisplay(element,c)&&(refreshDimensions(element,c),refreshBackgroundImage(element,c,function(){updateBackground(element,c)}))} function refreshDisplay(b,a){var c=b.currentStyle.display;c!=a.display&&(a.display=c,a.somethingChanged=!0);return"none"!=c}function refreshDimensions(b,a){var c=b.offsetWidth-(parseFloat(b.currentStyle.borderLeftWidth)||0)-(parseFloat(b.currentStyle.borderRightWidth)||0),d=b.offsetHeight-(parseFloat(b.currentStyle.borderTopWidth)||0)-(parseFloat(b.currentStyle.borderBottomWidth)||0);if(c!=a.innerWidth||d!=a.innerHeight)a.innerWidth=c,a.innerHeight=d,a.somethingChanged=!0} function refreshBackgroundImage(b,a,c){var d=a.img,e=(rsrc.exec(b.currentStyle.backgroundImage)||[])[1];if(e&&e!=a.backgroundSrc){a.backgroundSrc=e;a.somethingChanged=!0;d.onload=function(){var b=d.width,e=d.height;1==b&&1==e||(a.imgWidth=b,a.imgHeight=e,a.constrain=!1,c(),d.style.visibility="visible",d.onload=null)};d.style.visibility="hidden";d.src=a.backgroundSrc;if(d.readyState||d.complete)d.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",d.src=a.backgroundSrc;a.ignoreNextPropertyChange= !0;b.style.backgroundImage="none"}else c()} function updateBackground(b,a){if(a.somethingChanged){var c=a.img,d=a.innerWidth/a.innerHeight,e=a.imgWidth/a.imgHeight,f=a.constrain;"contain"==a.backgroundSize?e>d?(a.constrain=d="width",e=Math.floor((a.innerHeight-a.innerWidth/e)*a.backgroundPositionY),c.style.top=e+"px",d!=f&&(c.style.width="100%",c.style.height="auto",c.style.left=0)):(a.constrain=d="height",e=Math.floor((a.innerWidth-a.innerHeight*e)*a.backgroundPositionX),c.style.left=e+"px",d!=f&&(c.style.width="auto",c.style.height="100%", c.style.top=0)):"cover"==a.backgroundSize&&(e>d?(a.constrain=d="height",e=Math.floor((a.innerHeight*e-a.innerWidth)*a.backgroundPositionX),c.style.left=-e+"px",d!=f&&(c.style.width="auto",c.style.height="100%",c.style.top=0)):(a.constrain=d="width",e=Math.floor((a.innerWidth/e-a.innerHeight)*a.backgroundPositionY),c.style.top=-e+"px",d!=f&&(c.style.width="100%",c.style.height="auto",c.style.left=0)));a.somethingChanged=!1}} function handlePropertychange(){var b=element.bgsExpando;b.ignoreNextPropertyChange?b.ignoreNextPropertyChange=!1:refreshDisplay(element,b)&&(refreshDimensions(element,b),refreshBackgroundImage(element,b,function(){updateBackground(element,b)}))}function handleResize(){var b=element.bgsExpando;"none"!=b.display&&(refreshDimensions(element,b),updateBackground(element,b))} function restore(){var b=element.bgsExpando;try{element.style.backgroundImage="url('"+b.backgroundSrc+"')",element.removeChild(b.wrapper),element.bgsExpando=null}catch(a){}};
|
||||
</script>
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
|
||||
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
|
||||
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="<xyz></xyz>";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 figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",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<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
|
||||
@@ -0,0 +1,6 @@
|
||||
/*! Respond.js v1.4.2: min/max-width media query polyfill
|
||||
* Copyright 2014 Scott Jehl
|
||||
* Licensed under MIT
|
||||
* http://j.mp/respondjs */
|
||||
|
||||
!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!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))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//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*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;b<t.length;b++){var c=t[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!p[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(w(c.styleSheet.rawCssText,e,f),p[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!s||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}x()};y(),c.update=y,c.getEmValue=u,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);
|
||||
@@ -0,0 +1,2 @@
|
||||
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
|
||||
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
|
||||
@@ -0,0 +1,220 @@
|
||||
/*
|
||||
Spectral by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
skel
|
||||
.breakpoints({
|
||||
xlarge: '(max-width: 1680px)',
|
||||
large: '(max-width: 1280px)',
|
||||
medium: '(max-width: 980px)',
|
||||
small: '(max-width: 736px)',
|
||||
xsmall: '(max-width: 480px)'
|
||||
});
|
||||
|
||||
$(function() {
|
||||
|
||||
var $window = $(window),
|
||||
$body = $('body'),
|
||||
$wrapper = $('#page-wrapper'),
|
||||
$banner = $('#banner'),
|
||||
$header = $('#header');
|
||||
|
||||
// Disable animations/transitions until the page has loaded.
|
||||
$body.addClass('is-loading');
|
||||
|
||||
$window.on('load', function() {
|
||||
window.setTimeout(function() {
|
||||
$body.removeClass('is-loading');
|
||||
}, 100);
|
||||
});
|
||||
|
||||
// Mobile?
|
||||
if (skel.vars.mobile)
|
||||
$body.addClass('is-mobile');
|
||||
else
|
||||
skel
|
||||
.on('-medium !medium', function() {
|
||||
$body.removeClass('is-mobile');
|
||||
})
|
||||
.on('+medium', function() {
|
||||
$body.addClass('is-mobile');
|
||||
});
|
||||
|
||||
// Fix: Placeholder polyfill.
|
||||
$('form').placeholder();
|
||||
|
||||
// Prioritize "important" elements on medium.
|
||||
skel.on('+medium -medium', function() {
|
||||
$.prioritize(
|
||||
'.important\\28 medium\\29',
|
||||
skel.breakpoint('medium').active
|
||||
);
|
||||
});
|
||||
|
||||
// Scrolly.
|
||||
$('.scrolly')
|
||||
.scrolly({
|
||||
speed: 1500,
|
||||
offset: $header.outerHeight()
|
||||
});
|
||||
|
||||
$("#menu").show();
|
||||
|
||||
// Menu.
|
||||
$('#menu')
|
||||
.append('<a href="#menu" class="close"></a>')
|
||||
.appendTo($body)
|
||||
.panel({
|
||||
delay: 500,
|
||||
hideOnClick: true,
|
||||
hideOnSwipe: true,
|
||||
resetScroll: true,
|
||||
resetForms: true,
|
||||
side: 'right',
|
||||
target: $body,
|
||||
visibleClass: 'is-menu-visible'
|
||||
});
|
||||
|
||||
// Header.
|
||||
if (skel.vars.IEVersion < 9)
|
||||
$header.removeClass('alt');
|
||||
|
||||
if ($banner.length > 0 &&
|
||||
$header.hasClass('alt')) {
|
||||
|
||||
$window.on('resize', function() {
|
||||
$window.trigger('scroll');
|
||||
});
|
||||
|
||||
$banner.scrollex({
|
||||
bottom: $header.outerHeight() + 1,
|
||||
terminate: function() {
|
||||
$header.removeClass('alt');
|
||||
},
|
||||
enter: function() {
|
||||
$header.addClass('alt');
|
||||
},
|
||||
leave: function() {
|
||||
$header.removeClass('alt');
|
||||
}
|
||||
});
|
||||
|
||||
// Particles
|
||||
if ($( window ).width() > 980) {
|
||||
particlesJS('banner', {
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 65,
|
||||
"density": {
|
||||
"enable": false,
|
||||
"value_area": 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#f99081"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.6,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 1,
|
||||
"opacity_min": 0.4,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 14,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": true,
|
||||
"speed": 6,
|
||||
"size_min": 4,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": true,
|
||||
"distance": 250,
|
||||
"color": "#f99081",
|
||||
"opacity": 0.8,
|
||||
"width": 2
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 0.4,
|
||||
"direction": "none",
|
||||
"random": true,
|
||||
"straight": false,
|
||||
"out_mode": "out",
|
||||
"bounce": false,
|
||||
"attract": {
|
||||
"enable": false,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "canvas",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": true,
|
||||
"mode": "grab"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": true,
|
||||
"mode": "push"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 200,
|
||||
"line_linked": {
|
||||
"opacity": 0.8
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 400,
|
||||
"size": 40,
|
||||
"duration": 2,
|
||||
"opacity": 8,
|
||||
"speed": 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 200,
|
||||
"duration": 0.4
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 2
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,587 @@
|
||||
(function($) {
|
||||
|
||||
/**
|
||||
* Generate an indented list of links from a nav. Meant for use with panel().
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.navList = function() {
|
||||
|
||||
var $this = $(this);
|
||||
$a = $this.find('a'),
|
||||
b = [];
|
||||
|
||||
$a.each(function() {
|
||||
|
||||
var $this = $(this),
|
||||
indent = Math.max(0, $this.parents('li').length - 1),
|
||||
href = $this.attr('href'),
|
||||
target = $this.attr('target');
|
||||
|
||||
b.push(
|
||||
'<a ' +
|
||||
'class="link depth-' + indent + '"' +
|
||||
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
|
||||
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
|
||||
'>' +
|
||||
'<span class="indent-' + indent + '"></span>' +
|
||||
$this.text() +
|
||||
'</a>'
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
return b.join('');
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel-ify an element.
|
||||
* @param {object} userConfig User config.
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.panel = function(userConfig) {
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).panel(userConfig);
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Vars.
|
||||
var $this = $(this),
|
||||
$body = $('body'),
|
||||
$window = $(window),
|
||||
id = $this.attr('id'),
|
||||
config;
|
||||
|
||||
// Config.
|
||||
config = $.extend({
|
||||
|
||||
// Delay.
|
||||
delay: 0,
|
||||
|
||||
// Hide panel on link click.
|
||||
hideOnClick: false,
|
||||
|
||||
// Hide panel on escape keypress.
|
||||
hideOnEscape: false,
|
||||
|
||||
// Hide panel on swipe.
|
||||
hideOnSwipe: false,
|
||||
|
||||
// Reset scroll position on hide.
|
||||
resetScroll: false,
|
||||
|
||||
// Reset forms on hide.
|
||||
resetForms: false,
|
||||
|
||||
// Side of viewport the panel will appear.
|
||||
side: null,
|
||||
|
||||
// Target element for "class".
|
||||
target: $this,
|
||||
|
||||
// Class to toggle.
|
||||
visibleClass: 'visible'
|
||||
|
||||
}, userConfig);
|
||||
|
||||
// Expand "target" if it's not a jQuery object already.
|
||||
if (typeof config.target != 'jQuery')
|
||||
config.target = $(config.target);
|
||||
|
||||
// Panel.
|
||||
|
||||
// Methods.
|
||||
$this._hide = function(event) {
|
||||
|
||||
// Already hidden? Bail.
|
||||
if (!config.target.hasClass(config.visibleClass))
|
||||
return;
|
||||
|
||||
// If an event was provided, cancel it.
|
||||
if (event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
}
|
||||
|
||||
// Hide.
|
||||
config.target.removeClass(config.visibleClass);
|
||||
|
||||
// Post-hide stuff.
|
||||
window.setTimeout(function() {
|
||||
|
||||
// Reset scroll position.
|
||||
if (config.resetScroll)
|
||||
$this.scrollTop(0);
|
||||
|
||||
// Reset forms.
|
||||
if (config.resetForms)
|
||||
$this.find('form').each(function() {
|
||||
this.reset();
|
||||
});
|
||||
|
||||
}, config.delay);
|
||||
|
||||
};
|
||||
|
||||
// Vendor fixes.
|
||||
$this
|
||||
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
|
||||
.css('-webkit-overflow-scrolling', 'touch');
|
||||
|
||||
// Hide on click.
|
||||
if (config.hideOnClick) {
|
||||
|
||||
$this.find('a')
|
||||
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
|
||||
|
||||
$this
|
||||
.on('click', 'a', function(event) {
|
||||
|
||||
var $a = $(this),
|
||||
href = $a.attr('href'),
|
||||
target = $a.attr('target');
|
||||
|
||||
if (!href || href == '#' || href == '' || href == '#' + id)
|
||||
return;
|
||||
|
||||
// Cancel original event.
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
// Hide panel.
|
||||
$this._hide();
|
||||
|
||||
// Redirect to href.
|
||||
window.setTimeout(function() {
|
||||
|
||||
if (target == '_blank')
|
||||
window.open(href);
|
||||
else
|
||||
window.location.href = href;
|
||||
|
||||
}, config.delay + 10);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Event: Touch stuff.
|
||||
$this.on('touchstart', function(event) {
|
||||
|
||||
$this.touchPosX = event.originalEvent.touches[0].pageX;
|
||||
$this.touchPosY = event.originalEvent.touches[0].pageY;
|
||||
|
||||
})
|
||||
|
||||
$this.on('touchmove', function(event) {
|
||||
|
||||
if ($this.touchPosX === null
|
||||
|| $this.touchPosY === null)
|
||||
return;
|
||||
|
||||
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
|
||||
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
|
||||
th = $this.outerHeight(),
|
||||
ts = ($this.get(0).scrollHeight - $this.scrollTop());
|
||||
|
||||
// Hide on swipe?
|
||||
if (config.hideOnSwipe) {
|
||||
|
||||
var result = false,
|
||||
boundary = 20,
|
||||
delta = 50;
|
||||
|
||||
switch (config.side) {
|
||||
|
||||
case 'left':
|
||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
|
||||
break;
|
||||
|
||||
case 'right':
|
||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
|
||||
break;
|
||||
|
||||
case 'top':
|
||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
|
||||
break;
|
||||
|
||||
case 'bottom':
|
||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if (result) {
|
||||
|
||||
$this.touchPosX = null;
|
||||
$this.touchPosY = null;
|
||||
$this._hide();
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Prevent vertical scrolling past the top or bottom.
|
||||
if (($this.scrollTop() < 0 && diffY < 0)
|
||||
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// Event: Prevent certain events inside the panel from bubbling.
|
||||
$this.on('click touchend touchstart touchmove', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
|
||||
$this.on('click', 'a[href="#' + id + '"]', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
config.target.removeClass(config.visibleClass);
|
||||
|
||||
});
|
||||
|
||||
// Body.
|
||||
|
||||
// Event: Hide panel on body click/tap.
|
||||
$body.on('click touchend', function(event) {
|
||||
$this._hide(event);
|
||||
});
|
||||
|
||||
// Event: Toggle.
|
||||
$body.on('click', 'a[href="#' + id + '"]', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
config.target.toggleClass(config.visibleClass);
|
||||
|
||||
});
|
||||
|
||||
// Window.
|
||||
|
||||
// Event: Hide on ESC.
|
||||
if (config.hideOnEscape)
|
||||
$window.on('keydown', function(event) {
|
||||
|
||||
if (event.keyCode == 27)
|
||||
$this._hide(event);
|
||||
|
||||
});
|
||||
|
||||
return $this;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Apply "placeholder" attribute polyfill to one or more forms.
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.placeholder = function() {
|
||||
|
||||
// Browser natively supports placeholders? Bail.
|
||||
if (typeof (document.createElement('input')).placeholder != 'undefined')
|
||||
return $(this);
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).placeholder();
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Vars.
|
||||
var $this = $(this);
|
||||
|
||||
// Text, TextArea.
|
||||
$this.find('input[type=text],textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.val() == ''
|
||||
|| i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('blur', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == '')
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('focus', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.removeClass('polyfill-placeholder')
|
||||
.val('');
|
||||
|
||||
});
|
||||
|
||||
// Password.
|
||||
$this.find('input[type=password]')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
var x = $(
|
||||
$('<div>')
|
||||
.append(i.clone())
|
||||
.remove()
|
||||
.html()
|
||||
.replace(/type="password"/i, 'type="text"')
|
||||
.replace(/type=password/i, 'type=text')
|
||||
);
|
||||
|
||||
if (i.attr('id') != '')
|
||||
x.attr('id', i.attr('id') + '-polyfill-field');
|
||||
|
||||
if (i.attr('name') != '')
|
||||
x.attr('name', i.attr('name') + '-polyfill-field');
|
||||
|
||||
x.addClass('polyfill-placeholder')
|
||||
.val(x.attr('placeholder')).insertAfter(i);
|
||||
|
||||
if (i.val() == '')
|
||||
i.hide();
|
||||
else
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.on('blur', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
|
||||
i.hide();
|
||||
x.show();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
x
|
||||
.on('focus', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
||||
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.show()
|
||||
.focus();
|
||||
|
||||
})
|
||||
.on('keypress', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
x.val('');
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// Events.
|
||||
$this
|
||||
.on('submit', function() {
|
||||
|
||||
$this.find('input[type=text],input[type=password],textarea')
|
||||
.each(function(event) {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
i.attr('name', '');
|
||||
|
||||
if (i.val() == i.attr('placeholder')) {
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
i.val('');
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
})
|
||||
.on('reset', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
$this.find('select')
|
||||
.val($('option:first').val());
|
||||
|
||||
$this.find('input,textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this),
|
||||
x;
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
|
||||
switch (this.type) {
|
||||
|
||||
case 'submit':
|
||||
case 'reset':
|
||||
break;
|
||||
|
||||
case 'password':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
i.hide();
|
||||
x.show();
|
||||
}
|
||||
else {
|
||||
i.show();
|
||||
x.hide();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
i.attr('checked', i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
case 'text':
|
||||
case 'textarea':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
if (i.val() == '') {
|
||||
i.addClass('polyfill-placeholder');
|
||||
i.val(i.attr('placeholder'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
i.val(i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
return $this;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Moves elements to/from the first positions of their respective parents.
|
||||
* @param {jQuery} $elements Elements (or selector) to move.
|
||||
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
|
||||
*/
|
||||
$.prioritize = function($elements, condition) {
|
||||
|
||||
var key = '__prioritize';
|
||||
|
||||
// Expand $elements if it's not already a jQuery object.
|
||||
if (typeof $elements != 'jQuery')
|
||||
$elements = $($elements);
|
||||
|
||||
// Step through elements.
|
||||
$elements.each(function() {
|
||||
|
||||
var $e = $(this), $p,
|
||||
$parent = $e.parent();
|
||||
|
||||
// No parent? Bail.
|
||||
if ($parent.length == 0)
|
||||
return;
|
||||
|
||||
// Not moved? Move it.
|
||||
if (!$e.data(key)) {
|
||||
|
||||
// Condition is false? Bail.
|
||||
if (!condition)
|
||||
return;
|
||||
|
||||
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
|
||||
$p = $e.prev();
|
||||
|
||||
// Couldn't find anything? Means this element's already at the top, so bail.
|
||||
if ($p.length == 0)
|
||||
return;
|
||||
|
||||
// Move element to top of parent.
|
||||
$e.prependTo($parent);
|
||||
|
||||
// Mark element as moved.
|
||||
$e.data(key, $p);
|
||||
|
||||
}
|
||||
|
||||
// Moved already?
|
||||
else {
|
||||
|
||||
// Condition is true? Bail.
|
||||
if (condition)
|
||||
return;
|
||||
|
||||
$p = $e.data(key);
|
||||
|
||||
// Move element back to its original location (using our placeholder).
|
||||
$e.insertAfter($p);
|
||||
|
||||
// Unmark element as moved.
|
||||
$e.removeData(key);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,64 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
fG9YVaQqGxeUSQ==
|
||||
=OH/1
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
Spectral by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
/* Icon */
|
||||
.icon.major {
|
||||
border: none; }
|
||||
.icon.major:before {
|
||||
font-size: 3em; }
|
||||
|
||||
/* Form */
|
||||
label {
|
||||
color: #2E3842; }
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select,
|
||||
textarea {
|
||||
border: solid 1px #dfdfdf; }
|
||||
|
||||
/* Button */
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
border: solid 2px #dfdfdf; }
|
||||
input[type="submit"].special,
|
||||
input[type="reset"].special,
|
||||
input[type="button"].special,
|
||||
button.special,
|
||||
.button.special {
|
||||
border: 0 !important; }
|
||||
|
||||
/* Page Wrapper + Menu */
|
||||
#menu {
|
||||
display: none; }
|
||||
|
||||
body.is-menu-visible #menu {
|
||||
display: block; }
|
||||
|
||||
/* Header */
|
||||
#header nav > ul > li > a.menuToggle:after {
|
||||
display: none; }
|
||||
|
||||
/* Banner + Wrapper (style4) */
|
||||
#banner,
|
||||
.wrapper.style4 {
|
||||
-ms-behavior: url("assets/js/ie/backgroundsize.min.htc"); }
|
||||
#banner:before,
|
||||
.wrapper.style4:before {
|
||||
display: none; }
|
||||
|
||||
/* Banner */
|
||||
#banner .more {
|
||||
height: 4em; }
|
||||
#banner .more:after {
|
||||
display: none; }
|
||||
|
||||
/* Main */
|
||||
#main > header {
|
||||
-ms-behavior: url("assets/js/ie/backgroundsize.min.htc"); }
|
||||
#main > header:before {
|
||||
display: none; }
|
||||
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
Spectral by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
/* Spotlight */
|
||||
.spotlight {
|
||||
display: block; }
|
||||
.spotlight .image {
|
||||
display: inline-block;
|
||||
vertical-align: top; }
|
||||
.spotlight .content {
|
||||
padding: 4em 4em 2em 4em ;
|
||||
display: inline-block; }
|
||||
.spotlight:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block; }
|
||||
|
||||
/* Features */
|
||||
.features {
|
||||
display: block; }
|
||||
.features li {
|
||||
float: left; }
|
||||
.features:after {
|
||||
content: '';
|
||||
display: block;
|
||||
clear: both; }
|
||||
|
||||
/* Banner + Wrapper (style4) */
|
||||
#banner,
|
||||
.wrapper.style4 {
|
||||
background-image: url("../../assets/images/banner.jpg");
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
position: relative; }
|
||||
#banner:before,
|
||||
.wrapper.style4:before {
|
||||
background: #000000;
|
||||
content: '';
|
||||
height: 100%;
|
||||
left: 0;
|
||||
opacity: 0.5;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%; }
|
||||
#banner .inner,
|
||||
.wrapper.style4 .inner {
|
||||
position: relative;
|
||||
z-index: 1; }
|
||||
|
||||
/* Banner */
|
||||
#banner {
|
||||
padding: 14em 0 12em 0 ;
|
||||
height: auto; }
|
||||
#banner:after {
|
||||
display: none; }
|
||||
|
||||
/* CTA */
|
||||
#cta .inner header {
|
||||
float: left; }
|
||||
#cta .inner .actions {
|
||||
float: left; }
|
||||
#cta .inner:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block; }
|
||||
|
||||
/* Main */
|
||||
#main > header {
|
||||
background-image: url("../../assets/images/banner.jpg");
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
position: relative; }
|
||||
#main > header:before {
|
||||
background: #000000;
|
||||
content: '';
|
||||
height: 100%;
|
||||
left: 0;
|
||||
opacity: 0.5;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%; }
|
||||
#main > header > * {
|
||||
position: relative;
|
||||
z-index: 1; }
|
||||
|
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 409 B |
|
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 404 B |
|
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 363 B |
@@ -1,15 +0,0 @@
|
||||
# coding: utf-8
|
||||
|
||||
Gem::Specification.new do |spec|
|
||||
spec.name = "autonomic"
|
||||
spec.version = '0.0.0'
|
||||
spec.date = '2017-09-24'
|
||||
spec.summary = ""
|
||||
spec.description = ""
|
||||
spec.authors = ['autonomic co-operative']
|
||||
spec.email = 'autonomic.posteo.net'
|
||||
spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(assets|_layouts|_includes|_sass|LICENSE|README)}i) }
|
||||
|
||||
spec.add_development_dependency "jekyll", ">= 4"
|
||||
spec.add_development_dependency "bundler", ">= 1.12"
|
||||
end
|
||||
@@ -0,0 +1,111 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Autonomic Co-operative</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/html5shiv.js"></script><![endif]-->
|
||||
<link rel="stylesheet" href="/assets/styles/main.css" />
|
||||
<!--[if lte IE 8]><link rel="stylesheet" href="/assets/css/ie8.css" /><![endif]-->
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="/assets/css/ie9.css" /><![endif]-->
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<header id="header" >
|
||||
<h1><a href="/">Autonomic</a></h1>
|
||||
<nav id="nav">
|
||||
<ul>
|
||||
<li class="special">
|
||||
<a href="#menu" class="menuToggle"><span>Menu</span></a>
|
||||
<div id="menu">
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/#core-values">Our Core Values</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/#services">Services We Offer</a></li>
|
||||
<li><a href="/#contact">Get In Touch</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
|
||||
<div id="main">
|
||||
<header>
|
||||
|
||||
<h2>Blog</h2>
|
||||
<p></p>
|
||||
</header>
|
||||
</div>
|
||||
|
||||
<section class="wrapper alt style2">
|
||||
|
||||
|
||||
|
||||
<section class="spotlight">
|
||||
<div class="image"><img src="/assets/images/pic01.jpg" alt="" /></div>
|
||||
<div class="content">
|
||||
<h2>
|
||||
<a href="/blog/our-founding-principles/" class="link">
|
||||
Our Founding Principles
|
||||
</a>
|
||||
</h2>
|
||||
<p class="h5">October 03, 2017</p>
|
||||
<p>Autonomic Co-operative And Our Core Values</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<ul class="icons">
|
||||
|
||||
<li><a href="https://twitter.com/autonomiccoop" class="icon fa-twitter" target="_blank"><span class="label">Twitter</span></a></li>
|
||||
|
||||
<li><a href="https://gitlab.com/autonomic-cooperative" class="icon fa-gitlab" target="_blank"><span class="label">GitLab</span></a></li>
|
||||
|
||||
</ul>
|
||||
<ul class="copyright">
|
||||
<li class="icon fa-creative-commons"> Autonomic Co-operative</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="/assets/js/jquery.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrollex.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrolly.min.js"></script>
|
||||
<script src="/assets/js/skel.min.js"></script>
|
||||
<script src="/assets/js/util.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/respond.min.js"></script><![endif]-->
|
||||
<script src="/assets/js/main.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
<!-- Piwik -->
|
||||
<script type="text/javascript">
|
||||
var _paq = _paq || [];
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
_paq.push(['setTrackerUrl', 'https://api-183ae21d2fb4215fa8fb3bbf13fbda21.autonomic.sandcats.io']);
|
||||
_paq.push(['setSiteId', 1]);
|
||||
_paq.push(['setApiToken', '6X45HLvJ0KWNiLTlhbZ-uuhZcXfg9n3bDauHalRZMSh']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://6aurs6uetbyvpubfuh5y.autonomic.sandcats.io/embed.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<!-- End Piwik Code -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,186 @@
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Spectral by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
-->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Autonomic Co-operative</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/html5shiv.js"></script><![endif]-->
|
||||
<link rel="stylesheet" href="/assets/styles/main.css" />
|
||||
<!--[if lte IE 8]><link rel="stylesheet" href="/assets/css/ie8.css" /><![endif]-->
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="/assets/css/ie9.css" /><![endif]-->
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<header id="header" >
|
||||
<h1><a href="/">Autonomic</a></h1>
|
||||
<nav id="nav">
|
||||
<ul>
|
||||
<li class="special">
|
||||
<a href="#menu" class="menuToggle"><span>Menu</span></a>
|
||||
<div id="menu">
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/#core-values">Our Core Values</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/#services">Services We Offer</a></li>
|
||||
<li><a href="/#contact">Get In Touch</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
|
||||
<!-- Main -->
|
||||
<article id="main">
|
||||
<header>
|
||||
|
||||
<div
|
||||
class="header-image"
|
||||
style="background-image: url('/assets/images/pic01.jpg');"></div>
|
||||
|
||||
<h2>Our Founding Principles</h2>
|
||||
<p>Autonomic Co-operative And Our Core Values</p>
|
||||
<p><em>October 03, 2017</em></p>
|
||||
</header>
|
||||
<section class="wrapper style5">
|
||||
<div class="inner">
|
||||
|
||||
<p>Autonomic is a worker co-operative. That means we are owned and run by our
|
||||
workers and not by bosses or investors. We make our decisions collectively
|
||||
using consensus. We are committed to a set of basic principles of working on
|
||||
projects for social good. We reject destructive and unsustainable practices
|
||||
within the tech industry.</p>
|
||||
|
||||
<p>As individuals, we have become increasingly concerned with the levels of
|
||||
surveillance carried by nation states and corporations. Everyone deserves the
|
||||
fundamental right to privacy and safety online as well as in the physical
|
||||
world. We seem to be moving ever closer to a total reliance upon centralised
|
||||
services that mine our data for profit and are run in anything but our best
|
||||
interest as users.</p>
|
||||
|
||||
<p>There is another way. The philosophy of <a href="https://fsfe.org/about/basics/freesoftware.en.html">free software</a> allows for development
|
||||
guided not by profit alone, but instead by the desires and inspiration of the
|
||||
developers and users. Rather than subjugating users, it aims to empower users
|
||||
by making software source code available for anyone to examine, modify or
|
||||
share. We are committed to building the software commons by making as much of
|
||||
our code available under free software licences as possible.</p>
|
||||
|
||||
<p>As the internet becomes ubiquitous in our everyday lives, we must consider the
|
||||
technologies that we utilise in order to communicate. We must all have the
|
||||
ability to discuss and collaborate without being spied upon or our personal
|
||||
information sold to the highest bidder. Autonomic are committed to providing a
|
||||
platform for progressive projects and ideas that require accessible and modern
|
||||
infrastructure to thrive and grow, whilst preserving our client’s privacy and
|
||||
protecting their data.</p>
|
||||
|
||||
<h2 id="privacy">Privacy</h2>
|
||||
|
||||
<p>We seek to minimise data collection and retention wherever possible. If you
|
||||
don’t need it, don’t collect it.</p>
|
||||
|
||||
<p>We will utilise and recommend encryption wherever possible, especially if it is
|
||||
end to end encryption and has been well tested in real life scenarios by
|
||||
non-technical users.</p>
|
||||
|
||||
<p>We believe that unrestricted and uncensored access to the internet is a human
|
||||
right and we should all resist any attempts to censor the sharing of knowledge
|
||||
and experiences that helps build greater cooperation between peoples around the
|
||||
world.</p>
|
||||
|
||||
<h2 id="transparency">Transparency</h2>
|
||||
|
||||
<p>We don’t give you any crap. If something goes wrong, we’ll let you know and
|
||||
seek to communicate with our clients and the public in an effective manner.</p>
|
||||
|
||||
<p>We are committed to using free (as in freedom) software wherever possible and
|
||||
seek to contribute back to the upstream projects we rely on where practical.</p>
|
||||
|
||||
<p>We engage in ethical processes to avoid working with any organisations that are
|
||||
racist, homophobic, transphobic, misogynist or otherwise engage in oppressive
|
||||
behaviour.</p>
|
||||
|
||||
<h2 id="sustainability">Sustainability</h2>
|
||||
|
||||
<p>As a worker co-operative, we aim to grow in a sustainable way. This means not
|
||||
taking venture capital or risky loans. We build this the smart way, through
|
||||
hard work. We are always learning and studying as we go.</p>
|
||||
|
||||
<p>We are committed to learning more about about the ecological impact of
|
||||
technology. Whether that be the energy used by data centres or the components
|
||||
in our computing devices.</p>
|
||||
|
||||
<p>We will engage with the wider co-operative movement and work together to grow
|
||||
our sector and begin to build a new world in the ashes of the old.</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<p>We hope this basic statement of principles has given you an idea of where we
|
||||
are coming from and perhaps where we will be heading. The plan is to revisit
|
||||
these ideas as we grow and access the impact of this project. We hope you will
|
||||
be a part of this adventure.</p>
|
||||
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<ul class="icons">
|
||||
|
||||
<li><a href="https://twitter.com/autonomiccoop" class="icon fa-twitter" target="_blank"><span class="label">Twitter</span></a></li>
|
||||
|
||||
<li><a href="https://gitlab.com/autonomic-cooperative" class="icon fa-gitlab" target="_blank"><span class="label">GitLab</span></a></li>
|
||||
|
||||
</ul>
|
||||
<ul class="copyright">
|
||||
<li class="icon fa-creative-commons"> Autonomic Co-operative</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="/assets/js/jquery.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrollex.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrolly.min.js"></script>
|
||||
<script src="/assets/js/skel.min.js"></script>
|
||||
<script src="/assets/js/util.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/respond.min.js"></script><![endif]-->
|
||||
<script src="/assets/js/main.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
<!-- Piwik -->
|
||||
<script type="text/javascript">
|
||||
var _paq = _paq || [];
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
_paq.push(['setTrackerUrl', 'https://api-183ae21d2fb4215fa8fb3bbf13fbda21.autonomic.sandcats.io']);
|
||||
_paq.push(['setSiteId', 1]);
|
||||
_paq.push(['setApiToken', '6X45HLvJ0KWNiLTlhbZ-uuhZcXfg9n3bDauHalRZMSh']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://6aurs6uetbyvpubfuh5y.autonomic.sandcats.io/embed.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<!-- End Piwik Code -->
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,228 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Autonomic Co-operative</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/html5shiv.js"></script><![endif]-->
|
||||
<link rel="stylesheet" href="/assets/styles/main.css" />
|
||||
<!--[if lte IE 8]><link rel="stylesheet" href="/assets/css/ie8.css" /><![endif]-->
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="/assets/css/ie9.css" /><![endif]-->
|
||||
</head>
|
||||
|
||||
<body class="landing">
|
||||
<div id="page-wrapper">
|
||||
<header id="header" class="alt" >
|
||||
<h1><a href="/">Autonomic</a></h1>
|
||||
<nav id="nav">
|
||||
<ul>
|
||||
<li class="special">
|
||||
<a href="#menu" class="menuToggle"><span>Menu</span></a>
|
||||
<div id="menu">
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/#core-values">Our Core Values</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/#services">Services We Offer</a></li>
|
||||
<li><a href="/#contact">Get In Touch</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- Banner -->
|
||||
<div class="particle">
|
||||
<section id="banner">
|
||||
<div class="inner content">
|
||||
<h2>/Auto|nomic\</h2>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<a class="named-anchor" name="core-values"></a>
|
||||
<section id="one" class="wrapper style5 special">
|
||||
<div class="inner">
|
||||
<header class="major">
|
||||
<h2>
|
||||
Autonomic is a co-operative<br/>that is owned and run by its workers
|
||||
</h2>
|
||||
<p>
|
||||
We build technologies and infrastructure to empower users to make a positive</br>
|
||||
impact on the world. All of our services reflect our commitment to our core values:
|
||||
</p>
|
||||
</header>
|
||||
<ul class="icons major icons--flex">
|
||||
<li>
|
||||
<span class="icon fa-leaf major style1"></span>
|
||||
<span class="icons__title">Sustainability</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="icon fa-eye major style1"></span>
|
||||
<span class="icons__title">Transparency</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="icon fa-lock major style1"></span>
|
||||
<span class="icons__title">Privacy</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="two" class="wrapper alt style2">
|
||||
|
||||
|
||||
|
||||
<section class="spotlight">
|
||||
<div class="image"><img src="/assets/images/pic01.jpg" alt="" /></div>
|
||||
<div class="content">
|
||||
<h2><a href="/blog/our-founding-principles/" class="link">Our Founding Principles</a></h2>
|
||||
<p class="h5">October 03, 2017</p>
|
||||
<p>Autonomic Co-operative And Our Core Values</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<a class="named-anchor" name="services"></a>
|
||||
<section id="three" class="wrapper style6 special">
|
||||
<div class="inner">
|
||||
<header class="major">
|
||||
<h2>Services we offer</h2>
|
||||
<p>
|
||||
We design integrated infrastructure tailored to your needs utilising
|
||||
technologies from <br/> the best free and open source software projects
|
||||
available. Your data under your control.<br/> Here are some examples of
|
||||
the applications we have deployed for our clients.
|
||||
</p>
|
||||
</header>
|
||||
<ul class="features">
|
||||
<li class="icon fa-paper-plane-o">
|
||||
<h3>Encrypted Email</h3>
|
||||
<p>
|
||||
Secure your email communications with state of the art transport
|
||||
encryption and <a href="https://0xacab.org/riseuplabs/trees">TREES</a>
|
||||
encrypted mailbox storage.
|
||||
</p>
|
||||
</li>
|
||||
<li class="icon fa-rocket2">
|
||||
<h3>Text and Video Chat</h3>
|
||||
<p>
|
||||
Mobile friendly multi-channel team chat using <a href="https://rocket.chat/">Rocket.Chat</a>,
|
||||
with no artificial limits on features. Vital for remote project coordination.
|
||||
</p>
|
||||
</li>
|
||||
<li class="icon fa-cloud-o">
|
||||
<h3>Cloud Storage and Collaboration</h3>
|
||||
<p>
|
||||
<a href="https://sandstorm.io/">Sandstorm</a> is a personal "cloud
|
||||
in a box" , designed with the upmost security in mind. It allows you to
|
||||
deploy apps for file-storage, collaborative document editing,
|
||||
calendars, to-do lists and much more.
|
||||
</p>
|
||||
</li>
|
||||
<li class="icon fa-headphones">
|
||||
<h3>Voice Conferencing</h3>
|
||||
<p>
|
||||
Stable and low latency voice communications using <a href="https://wiki.mumble.info/wiki/Main_Page">Mumble</a>.
|
||||
Perfect for meetings, even with large groups, on mobile, or with low bandwidth.
|
||||
</p>
|
||||
</li>
|
||||
<li class="icon fa-comments-o">
|
||||
<h3>Forum and Mailing Lists</h3>
|
||||
<p>
|
||||
Build your online community with a modern and responsive forum with
|
||||
<a href="https://www.discourse.org/">Discourse</a>. An accessible
|
||||
replacement for traditional mailing lists.
|
||||
</p>
|
||||
</li>
|
||||
<li class="icon fa-map-o">
|
||||
<h3>Interactive Data and Mapping</h3>
|
||||
<p>
|
||||
Got some data? We can provide a variety of interactive data
|
||||
visualisations, including mapping using <a href="https://www.openstreetmap.org">OpenStreetMap</a>,
|
||||
and charts using <a href="https://d3js.org/">D3.js</a>. Get the most out of your
|
||||
data by presenting it in a bespoke web app.
|
||||
</p>
|
||||
</li>
|
||||
<li class="icon fa-code">
|
||||
<h3>Bespoke Development</h3>
|
||||
<p>
|
||||
For some problems, there may not be a pre-existing free software solution. Let
|
||||
us guide you through the full development cycle to deliver your bespoke solution.
|
||||
</p>
|
||||
</li>
|
||||
<li class="icon fa-lock">
|
||||
<h3>Cybersecurity Training</h3>
|
||||
<p>
|
||||
A grounded and principled understanding of the cybersecurity domain can ensure
|
||||
your organisation is not liable to any unwanted security threats. We provide
|
||||
structured training taliored to your threat model.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<a class="named-anchor" name="contact"></a>
|
||||
<section id="contact" class="wrapper style5 special">
|
||||
<header class="major">
|
||||
<h2>Get in Touch</h2>
|
||||
<p>Contact us to discuss your project's needs and arrange a consultation.</p>
|
||||
<p><a href="mailto:autonomic-coop@posteo.net">autonomic-coop@posteo.net</a></p>
|
||||
<p>
|
||||
If you use encrypted email, here is our <a href="/assets/pgp/autonomic-key.asc">PGP key</a>.
|
||||
Our key fingerprint is: <br/><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
|
||||
</p>
|
||||
</header>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<ul class="icons">
|
||||
|
||||
<li><a href="https://twitter.com/autonomiccoop" class="icon fa-twitter" target="_blank"><span class="label">Twitter</span></a></li>
|
||||
|
||||
<li><a href="https://gitlab.com/autonomic-cooperative" class="icon fa-gitlab" target="_blank"><span class="label">GitLab</span></a></li>
|
||||
|
||||
</ul>
|
||||
<ul class="copyright">
|
||||
<li class="icon fa-creative-commons"> Autonomic Co-operative</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="/assets/js/jquery.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrollex.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrolly.min.js"></script>
|
||||
<script src="/assets/js/skel.min.js"></script>
|
||||
<script src="/assets/js/util.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||||
<!--[if lte IE 8]><script src="/assets/js/ie/respond.min.js"></script><![endif]-->
|
||||
<script src="/assets/js/main.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
<!-- Piwik -->
|
||||
<script type="text/javascript">
|
||||
var _paq = _paq || [];
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
_paq.push(['setTrackerUrl', 'https://api-183ae21d2fb4215fa8fb3bbf13fbda21.autonomic.sandcats.io']);
|
||||
_paq.push(['setSiteId', 1]);
|
||||
_paq.push(['setApiToken', '6X45HLvJ0KWNiLTlhbZ-uuhZcXfg9n3bDauHalRZMSh']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://6aurs6uetbyvpubfuh5y.autonomic.sandcats.io/embed.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<!-- End Piwik Code -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
layout: spotlight
|
||||
title: Oops, Page Missing :|
|
||||
permalink: /404.html
|
||||
---
|
||||
@@ -1,8 +0,0 @@
|
||||
<!-- Banner -->
|
||||
<div class="particle">
|
||||
<section id="banner">
|
||||
<div class="inner content">
|
||||
<h2>/Auto|nomic\</h2>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
@@ -1,13 +0,0 @@
|
||||
<section id="contact" class="wrapper style5 special">
|
||||
<a class="named-anchor" name="contact">
|
||||
<header class="major">
|
||||
<h2>Get in Touch</h2>
|
||||
<p>Contact us to discuss your project's needs and arrange a consultation.</p>
|
||||
<p><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></p>
|
||||
<p>
|
||||
If you use encrypted email, here is our <a href="{{ "/assets/pgp/autonomic-key.asc" | relative_url }}">PGP key</a>.
|
||||
Our key fingerprint is: <br/><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
|
||||
</p>
|
||||
</header>
|
||||
</a>
|
||||
</section>
|
||||
@@ -1,34 +0,0 @@
|
||||
<a class="named-anchor" name="core-values"></a>
|
||||
<section id="one" class="wrapper style5 special">
|
||||
<div class="inner">
|
||||
<header class="major">
|
||||
<h2>
|
||||
Autonomic is a co-operative<br/>that is owned and run by its workers
|
||||
</h2>
|
||||
<p>
|
||||
We build technologies and infrastructure to empower users to make a positive</br>
|
||||
impact on the world. All of our services reflect our commitment to our core values:
|
||||
</p>
|
||||
</header>
|
||||
<ul class="icons major icons--flex">
|
||||
<li>
|
||||
<span class="icon icon--diamond icon--style3">
|
||||
<svg viewBox="0 0 1792 1792"><path d="M1280 704q0-26-19-45t-45-19q-172 0-318 50T639 824t-236 219q-19 21-19 45 0 26 19 45t45 19q24 0 45-19 27-24 74-71t67-66q137-124 269-176t313-52q26 0 45-19t19-45zm512-198q0 95-20 193-46 224-184 383t-358 268q-214 108-438 108-148 0-286-47-15-5-88-42t-96-37q-16 0-39 32t-45 70-53 70-60 32q-43 0-63-17t-46-60l-6-11-5-10-3-9q-2-6-2-14 0-35 31-73t68-66 68-56 31-48q0-4-14-38t-16-44q-9-51-9-104 0-115 44-220t119-184 170-139 204-96q55-18 145-25t180-9 178-6 164-24 113-57l30-29 29-28 27-20 37-16 43-5q39 0 71 46t47 112 24 124 8 96z" /></svg>
|
||||
</span>
|
||||
<span class="icons__title">Sustainability</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="icon icon--diamond icon--style3">
|
||||
<svg viewBox="0 100 1792 1692"><path d="M1664 960q-152-236-381-353 61 104 61 225 0 185-131 317t-317 131-316-131-132-317q0-121 61-225-229 117-381 353 133 205 334 327t434 121 435-121 333-327zM944 576q0-20-14-34t-34-14q-125 0-214 90t-90 214q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm848 384q0 34-20 69-140 230-376 369t-500 138-499-139-377-368Q0 994 0 960t20-69q140-229 377-368t499-139 500 139 376 368q20 35 20 69z" /></svg>
|
||||
</span>
|
||||
<span class="icons__title">Transparency</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="icon icon--diamond icon--style3">
|
||||
<svg viewBox="0 0 1792 1792"><path d="M640 768h512V576q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28H416q-40 0-68-28t-28-68V864q0-40 28-68t68-28h32V576q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z" /></svg>
|
||||
</span>
|
||||
<span class="icons__title">Privacy</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,7 +0,0 @@
|
||||
<!-- Scripts -->
|
||||
<script src="{{ "/assets/js/jquery-3.4.1.min.js" | absolute_url }}"></script>
|
||||
<script src="{{ "/assets/js/jquery.scrollex.min.js" | absolute_url }}"></script>
|
||||
<script src="{{ "/assets/js/skel.min.js" | absolute_url }}"></script>
|
||||
<script src="{{ "/assets/js/util.js" | absolute_url }}"></script>
|
||||
<script src="{{ "/assets/js/particles.min.js" | absolute_url }}""></script>
|
||||
<script src="{{ "/assets/js/main.js" | absolute_url }}"></script>
|
||||
@@ -1,50 +0,0 @@
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<div class="row">
|
||||
<div class="column">
|
||||
<a class="named-anchor" name="contact"></a>
|
||||
<h3>Get in Touch</h3>
|
||||
Contact us to discuss your project's needs and arrange a consultation:
|
||||
<a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></br></br>
|
||||
<a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">PGP key:</a>
|
||||
<code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
|
||||
|
||||
<ul class="icons" style="margin-bottom: 0; padding-top: 1em">
|
||||
<li>
|
||||
<a rel="noopener" href="{{ site.twitter_url }}" style="border-bottom: none">
|
||||
<img alt="twitter" style="height: 2rem;" src="{{ '/assets/svg/twitter-brands.svg' | absolute_url }}">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a rel="me" href="{{ site.mastodon_url }}" style="border-bottom: none">
|
||||
<img alt="mastodon" style="height: 2rem;" src="{{ '/assets/svg/mastodon-brands.svg' | absolute_url }}">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="copyright">
|
||||
<object style="height: 1.2rem; vertical-align: text-bottom;" type="image/svg+xml" data="{{ '/assets/svg/creative-commons-brands.svg' | absolute_url }}">
|
||||
Your browser does not support SVG
|
||||
</object>
|
||||
{{ site.title }}
|
||||
</div>
|
||||
<div class="cotech-box">
|
||||
<a href="https://www.coops.tech/">
|
||||
<img class="cotech-logo" src="{{ '/assets/images/CoTech-white-logo.png' | relative_url }}" alt="CoTech"/>
|
||||
<span class="cotech-text">Member of the Cotech Network</span>
|
||||
</a>
|
||||
</div>
|
||||
<div style="vertical-align: bottom;">
|
||||
<address>
|
||||
Autonomic Co-operative Limited</br>
|
||||
1539 Pershore Road</br>
|
||||
Birmingham</br>
|
||||
B30 2JH</br>
|
||||
United Kingdom</br>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -1,12 +0,0 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ site.title }}</title>
|
||||
|
||||
{% if page.meta_description %}
|
||||
<meta name="description" value="{{ page.meta_description }}">
|
||||
{% endif %}
|
||||
|
||||
<link rel="shortcut icon" href="{{ "/assets/images/favicon.ico" | relative_url }}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="{{ "/assets/styles/main.css" | relative_url }}">
|
||||
</head>
|
||||
@@ -1,21 +0,0 @@
|
||||
<header class="header {% if page.layout == 'default' %}alt{% endif %}">
|
||||
<h1 class="header-home"><a href="{{ "/" | absolute_url }}">Autonomic</a></h1>
|
||||
<nav>
|
||||
<ul class="header-nav">
|
||||
<li>
|
||||
<a class="header-link" href="{{ "/#core-values" | relative_url }}">Values</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="header-link" href="{{ "/#services" | relative_url }}">Services</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="header-link" href="{{ "/blog" | relative_url }}">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="header-link" href="{{ "/#contact" | relative_url }}">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<div id="page-wrapper">
|
||||
@@ -1,5 +0,0 @@
|
||||
<section class="wrapper style5 special compressed">
|
||||
<a rel="noopener" href="https://www.coops.tech/">
|
||||
<img src="/assets/images/Member-of-CoTech-logo-200.png" alt="Member of Co-Tech"/>
|
||||
</a>
|
||||
</section>
|
||||
@@ -1,115 +0,0 @@
|
||||
<a class="named-anchor" name="services"></a>
|
||||
<section id="three" class="wrapper style6 special">
|
||||
<div class="inner">
|
||||
<header class="major">
|
||||
<h2>Cooperative Cloud: For Organisations</h2>
|
||||
<p>
|
||||
This isn't an exhaustive list. If you don't see what you need, please contact us anyway:</br>
|
||||
<h3><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></h3>
|
||||
</p>
|
||||
</header>
|
||||
<ul class="features">
|
||||
<li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M127 896q0-163 67-313l367 1005q-196-95-315-281T127 896zm1288-39l-2 39q-2 20-10 49t-12 44-17 59-18 58l-76 256-278-826q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10q-75-1-202-10-12-1-20 5t-12 15-1 19 9 16 19 8l80 8 120 328-168 504-280-832q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10h-23l-26-1q105-160 275-253t367-94q147 0 281 53t238 149h-10q-55 0-92 41t-37 95l2 24 4 22q2 10 8 23t9 21 12 22 13 21 14 24 14 23q63 107 63 212zM909 963l237 647q1 6 5 11-126 44-255 44-112 0-217-32zm661-436q95 174 95 369 0 209-104 386t-279 278l235-678q59-169 59-276 0-42-6-79zM896 0q182 0 348 71t286 191 191 286 71 348-71 348-191 286-286 191-348 71-348-71-286-191-191-286T0 896t71-348 191-286T548 71 896 0zm0 1751q173 0 332-68t273-182 182-273 68-332-68-331-182-273-273-183-332-68-331 68-273 183-183 273-68 331 68 332 183 273 273 182 331 68z"/></svg>
|
||||
<div>
|
||||
<h3>Websites</h3>
|
||||
<p>
|
||||
We offer <a href="https://wordpress.com/">Wordpress</a> and static sites. Either managed or unmanaged with frictionless tools for editing and publishing that empower users. <a href="https://matomo.org/">Matamo</a> provides ethical analytics to measure impact.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<!-- <li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1703 478q40 57 18 129l-275 906q-19 64-76 108t-123 43H324q-77 0-148-53T76 1479q-24-67-2-127l3-27 4-37q1-8-3-21t-3-20q2-11 8-21t17-23 16-24q23-38 45-91t30-92q3-10 1-30t-1-28q3-11 17-28t17-23q21-36 42-92t25-90q1-9-2-32t0-28q4-13 22-30t22-23q19-26 43-84t27-97q1-8-3-25t-2-27q2-8 9-18t18-23 17-21q8-12 17-30t15-35 16-36 19-32 27-24 36-11 47 5l-1 3q38-9 51-9h761q74 0 114 56t18 130l-274 906q-36 119-71 154t-129 34H220q-27 0-38 15-11 16-1 43 24 70 144 70h923q29 0 56-15t35-42l300-987q7-22 5-57 38 15 59 43zm-1064 2q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H702q-13 0-25 10t-17 22zm-83 256q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H619q-13 0-25 10t-17 22z"/></svg>
|
||||
<div>
|
||||
<h3>CRM and Case Management</h3>
|
||||
<p>
|
||||
For case work (e.g. housing or asylum support) we offer our own system, OpenCase. It's simple and user-friendly, perfect for small, volunteer-led groups. We will also consider CiviCRM depending on requirements.
|
||||
</p>
|
||||
</div>
|
||||
</li> -->
|
||||
<!-- <li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1764 11q33 24 27 64l-256 1536q-5 29-32 45-14 8-31 8-11 0-24-5l-527-215-298 327q-18 21-47 21-14 0-23-4-19-7-30-23t-11-37v-452L40 1083q-37-14-40-55-3-39 32-59L1696 9q35-21 68 2zm-342 1499l221-1323-1434 827 336 137 863-639-478 797z"/></svg>
|
||||
<div>
|
||||
<h3>Encrypted Email</h3>
|
||||
<p>
|
||||
Secure your email communications with state of the art transport
|
||||
encryption and <a href="https://0xacab.org/riseuplabs/trees">TREES</a>
|
||||
encrypted mailbox storage.
|
||||
</p>
|
||||
</div>
|
||||
</li> -->
|
||||
<li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 1024 901"><g fill-rule="nonzero"><path d="M898 350zM308 38c32 18 62 40 87 64 41-7 84-11 127-11 128 0 250 34 343 95 48 32 86 70 113 112a279 279 0 010 305c-27 42-65 80-113 111-93 62-215 95-343 95-43 0-86-3-127-11-25 25-55 47-87 65-168 84-308 2-308 2s130-111 109-208c-58-59-90-131-90-207 0-75 32-147 90-207C130 146 0 36 0 36s140-82 308 2zM208 618c16 52 6 111-29 176l-5 10c30-3 61-11 92-27 24-13 46-30 65-48l36-34c48 13 101 20 157 20 225 0 408-118 408-265 0-146-183-264-408-264-226 0-409 118-409 264 0 64 35 123 93 168z"/><path d="M328 509a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 11-1-120 60 60 0 011 120z"/></g></svg>
|
||||
<div>
|
||||
<h3>Team Chat</h3>
|
||||
<p>
|
||||
Mobile friendly multi-channel team chat using <a href="https://rocket.chat/">Rocket.Chat</a>,
|
||||
with no artificial limits on features. Vital for remote project coordination.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 2048 1792"><path d="M1984 1152q0 159-112 272t-272 112H512q-185 0-316-131T64 1088q0-132 71-241t187-164l-2-43q0-212 150-362t362-150q158 0 287 88t187 230q70-62 166-62 106 0 181 75t75 181q0 75-41 138 129 30 213 135t84 239z"/></svg>
|
||||
<div>
|
||||
<h3>Cloud Storage and Collaboration</h3>
|
||||
<p>
|
||||
<a href="https://nextcloud.com/">Nextcloud</a> for file-storage, collaborative document editing, calendars. We also host <a href="https://github.com/hackmdio/codimd">CodiMD</a>, <a href="https://etherpad.org/">Etherpad</a>, <a href="https://gitea.io">Gitea</a> and <a href="https://wekan.github.io/">Wekan</a> instances.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<!-- <li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1728 886q0 166-60 314l-20 49-185 33q-22 83-90 137t-157 53v32q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23V928q0-14 9-23t23-9h64q14 0 23 9t9 23v32q71 0 130 36t93 95l68-12q29-95 29-193 0-148-88-279t-236-209-316-78-315 78-237 209-88 279q0 98 29 193l68 12q34-60 93-95t130-36v-32q0-14 9-23t23-9h64q14 0 23 9t9 23v576q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-32q-88 0-156-53t-91-137l-185-33-20-49q-60-148-60-314 0-151 67-291t179-242 266-164 320-61 320 61 266 164 179 242 67 291z"/></svg>
|
||||
<div>
|
||||
<h3>Voice Conferencing</h3>
|
||||
<p>
|
||||
Stable and low latency voice communications using <a href="https://wiki.mumble.info/wiki/Main_Page">Mumble</a>.
|
||||
Perfect for meetings, even with large groups, on mobile, or with low bandwidth.
|
||||
</p>
|
||||
</div>
|
||||
</li> -->
|
||||
<li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M704 384q-153 0-286 52T207 577t-79 191q0 82 53 158t149 132l97 56-35 84q34-20 62-39l44-31 53 10q78 14 153 14 153 0 286-52t212-141 78-191-78-191-212-141-286-52zm0-128q191 0 354 69t256 186 94 257-94 257-256 187-354 68q-86 0-176-16-124 88-278 128-36 9-86 16h-3q-11 0-20-8t-12-21l-1-6 1-7 2-6 2-5 4-5 4-5 4-5 4-5 23-25 26-29 23-29q15-19 25-39t20-44q-124-72-195-177T0 768q0-139 94-257t257-186 353-69zm822 1169q10 24 21 44t25 39 22 29 26 29 23 25l4 5 5 5 4 5 3 5 3 5 2 6v7l-1 6q-3 14-13 22t-22 7q-50-7-86-16-154-40-278-128-90 16-176 16-271 0-472-132 58 4 88 4 161 0 309-45t264-129q125-92 192-212t67-254q0-77-23-152 129 71 204 178t75 230q0 120-71 225t-195 176z"/></svg>
|
||||
<div>
|
||||
<h3>Forum and Mailing Lists</h3>
|
||||
<p>
|
||||
Build your online community with a modern and responsive forum with
|
||||
<a href="https://www.discourse.org/">Discourse</a>. An accessible
|
||||
replacement for traditional mailing lists.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<!-- <li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 2048 1792"><path d="M2020 11q28 20 28 53v1408q0 20-11 36t-29 23l-640 256q-24 11-48 0l-616-246-616 246q-10 5-24 5-19 0-36-11-28-20-28-53V320q0-20 11-36t29-23L680 5q24-11 48 0l616 246L1960 5q32-13 60 6zM736 146v1270l576 230V376zM128 363v1270l544-217V146zm1792 1066V159l-544 217v1270z"/></svg>
|
||||
<div>
|
||||
<h3>Interactive Data and Mapping</h3>
|
||||
<p>
|
||||
Got some data? We can provide a variety of interactive data
|
||||
visualisations, including mapping using <a href="https://www.openstreetmap.org">OpenStreetMap</a>,
|
||||
and charts using <a href="https://d3js.org/">D3.js</a>. Get the most out of your
|
||||
data by presenting it in a bespoke web app.
|
||||
</p>
|
||||
</div>
|
||||
</li> -->
|
||||
<li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 2048 1792"><path d="M681 1399l-50 50q-10 10-23 10t-23-10L119 983q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23L288 960l393 393q10 10 10 23t-10 23zm591-1067L899 1623q-4 13-15 20t-24 2l-62-17q-13-4-19-15t-3-25l373-1291q4-13 16-19t23-3l62 17q13 4 20 16t2 24zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z"/></svg>
|
||||
<div>
|
||||
<h3>Bespoke Development</h3>
|
||||
<p>
|
||||
For some problems, there may not be a pre-existing solution. Let us guide you through the full development cycle to deliver your bespoke solution.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="features-item">
|
||||
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M640 768h512V576q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28H416q-40 0-68-28t-28-68V864q0-40 28-68t68-28h32V576q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z"/></svg>
|
||||
<div>
|
||||
<h3>Cybersecurity Training</h3>
|
||||
<p>
|
||||
A grounded and principled understanding of the cybersecurity domain can ensure
|
||||
your organisation is not liable to any unwanted security threats. We provide
|
||||
structured training tailored to your threat model.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,12 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="en">
|
||||
{% include head.html %}
|
||||
<body class="landing">
|
||||
{% include header.html %}
|
||||
{% include banner.html %}
|
||||
{% include core-values.html %}
|
||||
{% include services.html %}
|
||||
{% include footer.html %}
|
||||
{% include foot-scripts.html %}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,32 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="en">
|
||||
{% include head.html %}
|
||||
|
||||
<body>
|
||||
{% include header.html %}
|
||||
|
||||
<!-- Main -->
|
||||
<article id="main">
|
||||
<header
|
||||
{% if page.image %}
|
||||
style="background-image: url('{% if site.featured-image-source %}{{ page.image | prepend: site.featured-image-source | absolute_url }}{% else %}{{ "" | absolute_url }}/assets/images/{{ page.image }}{% endif %}');"
|
||||
{% endif %}
|
||||
>
|
||||
<h2>{{ page.title }}</h2>
|
||||
<p>{{ page.description }}</p>
|
||||
</header>
|
||||
<section class="wrapper style5">
|
||||
<div class="inner">
|
||||
|
||||
{{ content }}
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
{% include footer.html %}
|
||||
{% include foot-scripts.html %}
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,40 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Spectral by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
-->
|
||||
<html lang="en">
|
||||
|
||||
{% include head.html %}
|
||||
|
||||
<body>
|
||||
|
||||
{% include header.html %}
|
||||
|
||||
<!-- Main -->
|
||||
<article id="main">
|
||||
<header
|
||||
{% if page.image %}
|
||||
style="background-image: url('{% if site.featured-image-source %}{{ page.image | prepend: site.featured-image-source | absolute_url }}{% else %}{{ "" | absolute_url }}/assets/images/{{ page.image }}{% endif %}');"
|
||||
{% endif %}
|
||||
>
|
||||
<h2>{{ page.title }}</h2>
|
||||
<p>{{ page.description }}</p>
|
||||
<p><em>{{ page.date | date: '%B %d, %Y' }}</em></p>
|
||||
</header>
|
||||
<section class="wrapper style5">
|
||||
<div class="inner inner--text">
|
||||
|
||||
{{ content }}
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
{% include footer.html %}
|
||||
{% include foot-scripts.html %}
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,48 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="en">
|
||||
{% include head.html %}
|
||||
|
||||
<body>
|
||||
{% include header.html %}
|
||||
|
||||
<div id="main">
|
||||
<header
|
||||
{% if page.image %}
|
||||
style="background-image: url('{% if site.featured-image-source %}{{ page.image | prepend: site.featured-image-source | absolute_url }}{% else %}{{ "" | absolute_url }}/assets/images/{{ page.image }}{% endif %}');"
|
||||
{% endif %}
|
||||
>
|
||||
<h2>{{ page.title }}</h2>
|
||||
<p>{{ page.description }}</p>
|
||||
</header>
|
||||
</div>
|
||||
|
||||
<section class="wrapper alt style2">
|
||||
{% if page.tiles-source == 'posts' %}
|
||||
{% assign items = site.posts %}
|
||||
{% elsif page.tiles-source == 'pages' %}
|
||||
{% assign items = site.pages %}
|
||||
{% elsif page.tiles-source == 'clients' %}
|
||||
{% assign items = site.clients %}
|
||||
{% endif %}
|
||||
|
||||
{% for item in items limit:page.tiles-count %}
|
||||
<section class="spotlight">
|
||||
<div class="image">{% if item.image %}<img src="{% if site.featured-image-source %}{{ item.image | prepend: site.featured-image-source | absolute_url }}{% else %}{{ "" | absolute_url }}/assets/images/{{ item.image }}{% endif %}" alt="" />{% endif %}</div>
|
||||
<div class="content">
|
||||
<h2>
|
||||
{% if item.layout %}<a href="{{ item.url | relative_url }}" class="link">{% endif %}
|
||||
{{ item.title }}
|
||||
{% if item.layout %}</a>{% endif %}
|
||||
</h2>
|
||||
<p class="h5">{{ item.date | date: '%B %d, %Y' }}</p>
|
||||
<p>{{ item.description }}</p>
|
||||
</div>
|
||||
</section>
|
||||
{% endfor %}
|
||||
</section>
|
||||
|
||||
{% include footer.html %}
|
||||
{% include foot-scripts.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,84 +0,0 @@
|
||||
---
|
||||
layout: post
|
||||
title: Our Founding Principles
|
||||
description: Autonomic Co-operative And Our Core Values
|
||||
image: 2016-09-23-thinkpad-keyboard.jpg
|
||||
category: values
|
||||
date: 2017-10-03
|
||||
---
|
||||
|
||||
Autonomic is a worker co-operative. That means we are owned and run by our
|
||||
workers and not by bosses or investors. We make our decisions collectively
|
||||
using consensus. We are committed to a set of basic principles of working on
|
||||
projects for social good. We reject destructive and unsustainable practices
|
||||
within the tech industry.
|
||||
|
||||
As individuals, we have become increasingly concerned with the levels of
|
||||
surveillance carried by nation states and corporations. Everyone deserves the
|
||||
fundamental right to privacy and safety online as well as in the physical
|
||||
world. We seem to be moving ever closer to a total reliance upon centralised
|
||||
services that mine our data for profit and are run in anything but our best
|
||||
interest as users.
|
||||
|
||||
There is another way. The philosophy of [free software] allows for development
|
||||
guided not by profit alone, but instead by the desires and inspiration of the
|
||||
developers and users. Rather than subjugating users, it aims to empower users
|
||||
by making software source code available for anyone to examine, modify or
|
||||
share. We are committed to building the software commons by making as much of
|
||||
our code available under free software licences as possible.
|
||||
|
||||
[free software]: https://fsfe.org/about/basics/freesoftware.en.html
|
||||
|
||||
As the internet becomes ubiquitous in our everyday lives, we must consider the
|
||||
technologies that we utilise in order to communicate. We must all have the
|
||||
ability to discuss and collaborate without being spied upon or our personal
|
||||
information sold to the highest bidder. Autonomic are committed to providing a
|
||||
platform for progressive projects and ideas that require accessible and modern
|
||||
infrastructure to thrive and grow, whilst preserving our client's privacy and
|
||||
protecting their data.
|
||||
|
||||
## Privacy
|
||||
|
||||
We seek to minimise data collection and retention wherever possible. If you
|
||||
don't need it, don't collect it.
|
||||
|
||||
We will utilise and recommend encryption wherever possible, especially if it is
|
||||
end to end encryption and has been well tested in real life scenarios by
|
||||
non-technical users.
|
||||
|
||||
We believe that unrestricted and uncensored access to the internet is a human
|
||||
right and we should all resist any attempts to censor the sharing of knowledge
|
||||
and experiences that helps build greater cooperation between peoples around the
|
||||
world.
|
||||
|
||||
## Transparency
|
||||
|
||||
We don't give you any crap. If something goes wrong, we'll let you know and
|
||||
seek to communicate with our clients and the public in an effective manner.
|
||||
|
||||
We are committed to using free (as in freedom) software wherever possible and
|
||||
seek to contribute back to the upstream projects we rely on where practical.
|
||||
|
||||
We engage in ethical processes to avoid working with any organisations that are
|
||||
racist, homophobic, transphobic, misogynist or otherwise engage in oppressive
|
||||
behaviour.
|
||||
|
||||
## Sustainability
|
||||
|
||||
As a worker co-operative, we aim to grow in a sustainable way. This means not
|
||||
taking venture capital or risky loans. We build this the smart way, through
|
||||
hard work. We are always learning and studying as we go.
|
||||
|
||||
We are committed to learning more about about the ecological impact of
|
||||
technology. Whether that be the energy used by data centres or the components
|
||||
in our computing devices.
|
||||
|
||||
We will engage with the wider co-operative movement and work together to grow
|
||||
our sector and begin to build a new world in the ashes of the old.
|
||||
|
||||
<hr>
|
||||
|
||||
We hope this basic statement of principles has given you an idea of where we
|
||||
are coming from and perhaps where we will be heading. The plan is to revisit
|
||||
these ideas as we grow and access the impact of this project. We hope you will
|
||||
be a part of this adventure.
|
||||
@@ -1,136 +0,0 @@
|
||||
---
|
||||
layout: post
|
||||
title: CiviCRM AngularJS extension
|
||||
description: Adding custom validation to the CiviCRM Mailing form
|
||||
image: 2019-08-30_civicrm_validation_header.jpg
|
||||
category: howto
|
||||
date: 2019-08-30
|
||||
---
|
||||
|
||||
We support [Campaign Against Arms Trade](https://caat.org.uk), a right-on group
|
||||
that works to end the international arms trade, with their technology –
|
||||
including [CiviCRM](https://civicrm.org/), a popular open source
|
||||
"constituent relationship management" platform.
|
||||
|
||||
Among other things, CAAT uses CiviCRM's "Mailing" features to send out emails to
|
||||
their supporters, and they told us that they're experiencing an annoying bug: if
|
||||
a user sends out a mailing with the same name (not subject line, just the
|
||||
internal identifier 🙄) as an existing one, it'll cause the CRM to freeze up
|
||||
elsewhere.
|
||||
|
||||
As an added challenge, the mailing features of CiviCRM [now use
|
||||
AngularJS](https://docs.civicrm.org/dev/en/latest/framework/angular/) following
|
||||
a recent rebuild by the developers, and there aren't many tutorials or examples
|
||||
out there to customise it. Luckily, the CiviCRM developer community was
|
||||
super-helpful, and we managed to sort out some in-form validation to prevent
|
||||
duplicate mailing names for our client… and now for you, too!
|
||||
|
||||
## Create a new extension
|
||||
|
||||
Using [`civix`](https://github.com/totten/civix), we set up a new CiviCRM extension for our code:
|
||||
|
||||
```sh
|
||||
$ civix generate:module mailing
|
||||
```
|
||||
|
||||
(We called our extension `mailing`, because our creative director was occupied
|
||||
with an Art at the time)
|
||||
|
||||
Our client sensibly keeps their custom CiviCRM extensions in `git`, so at this
|
||||
stage we initialised a repository, added the boilerplate template code, and
|
||||
pushed.
|
||||
|
||||
## Set up the AngularJS hook
|
||||
|
||||
A function called `mailing_civicrm_alterAngular()` will get executed whenever
|
||||
an AngularJS page loads, and you can use a `ChangeSet` to edit an AngularJS
|
||||
template. Because AngularJS templates specify form logic, this also lets you
|
||||
change the validation behaviour. Our hook function looks like this:
|
||||
|
||||
```php
|
||||
function mailing_civicrm_alterAngular($angular) {
|
||||
$changeSet = \Civi\Angular\ChangeSet::create('mailing_name_unique')
|
||||
->alterHtml('~/crmMailing/BlockSummary.html', function(phpQueryObject $doc) {
|
||||
// name validation
|
||||
$doc->find('.crm-group:has([crm-ui-id="subform.mailingName"])')->attr('ng-controller', 'NameValidateCtrl');
|
||||
$doc->find('[crm-ui-id="subform.mailingName"]')->attr('ng-blur', 'validateName(mailing, \'name\')');
|
||||
$doc->find('[crm-ui-id="subform.mailingName"]')->attr('crm-ui-validate', 'isValid');
|
||||
});
|
||||
|
||||
$angular->add($changeSet);
|
||||
|
||||
CRM_Core_Resources::singleton()->addScriptFile('mailing', 'js/disallow-duplicate-names.js');
|
||||
}
|
||||
```
|
||||
|
||||
Setting `crm-ui-validate` to `validateName` directly fired the event _way_ too
|
||||
many times, so instead `validateName` is only called when focus leaves the
|
||||
field, `ng-blur`, which then sets the `isValid` variable that's checked by
|
||||
`crm-ui-validate`.
|
||||
|
||||
## Create the `validateName` function
|
||||
|
||||
Then, the code which queries the CiviCRM API to check for mailings with
|
||||
duplicate names:
|
||||
|
||||
```javascript
|
||||
var validating = false;
|
||||
|
||||
(function(angular, $) {
|
||||
var crmMailing = angular.module('crmMailing');
|
||||
|
||||
crmMailing.controller('NameValidateCtrl', function($scope) {
|
||||
$scope.isValid = false;
|
||||
|
||||
$scope.validateName = function(mailing, field) {
|
||||
if (!validating) {
|
||||
validating = true;
|
||||
|
||||
CRM.api3('Mailing', 'get', {
|
||||
"sequential": 1,
|
||||
"name": mailing[field],
|
||||
"id": {"!=": mailing.id}
|
||||
}).then(function(result) {
|
||||
// do something with result
|
||||
if (result.count > 0 ) {
|
||||
$scope.isValid = false;
|
||||
CRM.alert(ts('There is already a mailing with this name; sending this one will crash CiviCRM!'));
|
||||
} else {
|
||||
$scope.isValid = true;
|
||||
}
|
||||
}, function(error) {
|
||||
// oops
|
||||
console.log(error);
|
||||
});
|
||||
|
||||
validating = false;
|
||||
}
|
||||
};
|
||||
});
|
||||
})(angular, CRM.$);
|
||||
```
|
||||
|
||||
(saved as `js/disallow-duplicate-names.js`)
|
||||
|
||||
## Conclusion
|
||||
|
||||
Activate the extension, e.g. with `cv`
|
||||
|
||||
```
|
||||
$ cv en mailing
|
||||
```
|
||||
|
||||
Now, open a mailing and try to give it the same name as an existing one – you
|
||||
should see the field border turn red, and you'll be prevented from continuing or
|
||||
sending the mailing:
|
||||
|
||||

|
||||
|
||||
(As a bonus, the extension also sends a notification to the user using
|
||||
`CRM.alert` to explain the error)
|
||||
|
||||
It does seem like a red border sometimes hangs around the field label even after
|
||||
the value is valid again… but apart from that, the feature is working great!
|
||||
|
||||
Lastly, props to CAAT for being a great member of the CiviCRM community and
|
||||
supporting us writing this post to share our work with y'all.
|
||||
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 8.5 KiB |
@@ -1,190 +0,0 @@
|
||||
/*
|
||||
Spectral by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
skel.breakpoints({
|
||||
xlarge: "(max-width: 1680px)",
|
||||
large: "(max-width: 1280px)",
|
||||
medium: "(max-width: 980px)",
|
||||
small: "(max-width: 736px)",
|
||||
xsmall: "(max-width: 480px)"
|
||||
});
|
||||
|
||||
var $window = $(window),
|
||||
$body = $("body"),
|
||||
$wrapper = $("#page-wrapper"),
|
||||
$banner = $("#banner"),
|
||||
$header = $(".header");
|
||||
|
||||
// Disable animations/transitions until the page has loaded.
|
||||
$body.addClass("is-loading");
|
||||
|
||||
$window.on("load", function() {
|
||||
window.setTimeout(function() {
|
||||
$body.removeClass("is-loading");
|
||||
}, 100);
|
||||
});
|
||||
|
||||
// Mobile?
|
||||
if (skel.vars.mobile) {
|
||||
$body.addClass("is-mobile");
|
||||
} else {
|
||||
skel
|
||||
.on("-medium !medium", function() {
|
||||
$body.removeClass("is-mobile");
|
||||
})
|
||||
.on("+medium", function() {
|
||||
$body.addClass("is-mobile");
|
||||
});
|
||||
}
|
||||
|
||||
// Fix: Placeholder polyfill.
|
||||
$("form").placeholder();
|
||||
|
||||
// Prioritize "important" elements on medium.
|
||||
skel.on("+medium -medium", function() {
|
||||
$.prioritize(
|
||||
".important\\28 medium\\29",
|
||||
skel.breakpoint("medium").active
|
||||
);
|
||||
});
|
||||
|
||||
// Header.
|
||||
if (skel.vars.IEVersion < 9) $header.removeClass("alt");
|
||||
|
||||
if ($banner.length > 0 && $header.hasClass("alt")) {
|
||||
$window.on("resize", function() {
|
||||
$window.trigger("scroll");
|
||||
});
|
||||
|
||||
$banner.scrollex({
|
||||
bottom: $header.outerHeight() + 1,
|
||||
terminate: function() {
|
||||
$header.removeClass("alt");
|
||||
},
|
||||
enter: function() {
|
||||
$header.addClass("alt");
|
||||
},
|
||||
leave: function() {
|
||||
$header.removeClass("alt");
|
||||
}
|
||||
});
|
||||
|
||||
// Particles
|
||||
if ($(window).width() > 980) {
|
||||
particlesJS("banner", {
|
||||
particles: {
|
||||
number: {
|
||||
value: 65,
|
||||
density: {
|
||||
enable: false,
|
||||
value_area: 800
|
||||
}
|
||||
},
|
||||
color: {
|
||||
value: "#ff5555"
|
||||
},
|
||||
shape: {
|
||||
type: "circle",
|
||||
stroke: {
|
||||
width: 0,
|
||||
color: "#000000"
|
||||
},
|
||||
polygon: {
|
||||
nb_sides: 5
|
||||
},
|
||||
image: {
|
||||
src: "img/github.svg",
|
||||
width: 100,
|
||||
height: 100
|
||||
}
|
||||
},
|
||||
opacity: {
|
||||
value: 0.6,
|
||||
random: true,
|
||||
anim: {
|
||||
enable: false,
|
||||
speed: 1,
|
||||
opacity_min: 0.4,
|
||||
sync: false
|
||||
}
|
||||
},
|
||||
size: {
|
||||
value: 14,
|
||||
random: true,
|
||||
anim: {
|
||||
enable: true,
|
||||
speed: 6,
|
||||
size_min: 4,
|
||||
sync: false
|
||||
}
|
||||
},
|
||||
line_linked: {
|
||||
enable: true,
|
||||
distance: 250,
|
||||
color: "#ff5555",
|
||||
opacity: 0.8,
|
||||
width: 2
|
||||
},
|
||||
move: {
|
||||
enable: true,
|
||||
speed: 0.4,
|
||||
direction: "none",
|
||||
random: true,
|
||||
straight: false,
|
||||
out_mode: "out",
|
||||
bounce: false,
|
||||
attract: {
|
||||
enable: false,
|
||||
rotateX: 600,
|
||||
rotateY: 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
interactivity: {
|
||||
detect_on: "canvas",
|
||||
events: {
|
||||
onhover: {
|
||||
enable: true,
|
||||
mode: "grab"
|
||||
},
|
||||
onclick: {
|
||||
enable: true,
|
||||
mode: "push"
|
||||
},
|
||||
resize: true
|
||||
},
|
||||
modes: {
|
||||
grab: {
|
||||
distance: 200,
|
||||
line_linked: {
|
||||
opacity: 0.8
|
||||
}
|
||||
},
|
||||
bubble: {
|
||||
distance: 400,
|
||||
size: 40,
|
||||
duration: 2,
|
||||
opacity: 8,
|
||||
speed: 3
|
||||
},
|
||||
repulse: {
|
||||
distance: 200,
|
||||
duration: 0.4
|
||||
},
|
||||
push: {
|
||||
particles_nb: 2
|
||||
},
|
||||
remove: {
|
||||
particles_nb: 2
|
||||
}
|
||||
}
|
||||
},
|
||||
retina_detect: true
|
||||
});
|
||||
}
|
||||
}
|
||||
})(jQuery);
|
||||
@@ -1,291 +0,0 @@
|
||||
(function($) {
|
||||
|
||||
/**
|
||||
* Apply "placeholder" attribute polyfill to one or more forms.
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.placeholder = function() {
|
||||
|
||||
// Browser natively supports placeholders? Bail.
|
||||
if (typeof (document.createElement('input')).placeholder != 'undefined')
|
||||
return $(this);
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).placeholder();
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Vars.
|
||||
var $this = $(this);
|
||||
|
||||
// Text, TextArea.
|
||||
$this.find('input[type=text],textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.val() == ''
|
||||
|| i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('blur', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == '')
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('focus', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.removeClass('polyfill-placeholder')
|
||||
.val('');
|
||||
|
||||
});
|
||||
|
||||
// Password.
|
||||
$this.find('input[type=password]')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
var x = $(
|
||||
$('<div>')
|
||||
.append(i.clone())
|
||||
.remove()
|
||||
.html()
|
||||
.replace(/type="password"/i, 'type="text"')
|
||||
.replace(/type=password/i, 'type=text')
|
||||
);
|
||||
|
||||
if (i.attr('id') != '')
|
||||
x.attr('id', i.attr('id') + '-polyfill-field');
|
||||
|
||||
if (i.attr('name') != '')
|
||||
x.attr('name', i.attr('name') + '-polyfill-field');
|
||||
|
||||
x.addClass('polyfill-placeholder')
|
||||
.val(x.attr('placeholder')).insertAfter(i);
|
||||
|
||||
if (i.val() == '')
|
||||
i.hide();
|
||||
else
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.on('blur', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
|
||||
i.hide();
|
||||
x.show();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
x
|
||||
.on('focus', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
||||
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.show()
|
||||
.focus();
|
||||
|
||||
})
|
||||
.on('keypress', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
x.val('');
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// Events.
|
||||
$this
|
||||
.on('submit', function() {
|
||||
|
||||
$this.find('input[type=text],input[type=password],textarea')
|
||||
.each(function(event) {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
i.attr('name', '');
|
||||
|
||||
if (i.val() == i.attr('placeholder')) {
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
i.val('');
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
})
|
||||
.on('reset', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
$this.find('select')
|
||||
.val($('option:first').val());
|
||||
|
||||
$this.find('input,textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this),
|
||||
x;
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
|
||||
switch (this.type) {
|
||||
|
||||
case 'submit':
|
||||
case 'reset':
|
||||
break;
|
||||
|
||||
case 'password':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
i.hide();
|
||||
x.show();
|
||||
}
|
||||
else {
|
||||
i.show();
|
||||
x.hide();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
i.attr('checked', i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
case 'text':
|
||||
case 'textarea':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
if (i.val() == '') {
|
||||
i.addClass('polyfill-placeholder');
|
||||
i.val(i.attr('placeholder'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
i.val(i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
return $this;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Moves elements to/from the first positions of their respective parents.
|
||||
* @param {jQuery} $elements Elements (or selector) to move.
|
||||
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
|
||||
*/
|
||||
$.prioritize = function($elements, condition) {
|
||||
|
||||
var key = '__prioritize';
|
||||
|
||||
// Expand $elements if it's not already a jQuery object.
|
||||
if (typeof $elements != 'jQuery')
|
||||
$elements = $($elements);
|
||||
|
||||
// Step through elements.
|
||||
$elements.each(function() {
|
||||
|
||||
var $e = $(this), $p,
|
||||
$parent = $e.parent();
|
||||
|
||||
// No parent? Bail.
|
||||
if ($parent.length == 0)
|
||||
return;
|
||||
|
||||
// Not moved? Move it.
|
||||
if (!$e.data(key)) {
|
||||
|
||||
// Condition is false? Bail.
|
||||
if (!condition)
|
||||
return;
|
||||
|
||||
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
|
||||
$p = $e.prev();
|
||||
|
||||
// Couldn't find anything? Means this element's already at the top, so bail.
|
||||
if ($p.length == 0)
|
||||
return;
|
||||
|
||||
// Move element to top of parent.
|
||||
$e.prependTo($parent);
|
||||
|
||||
// Mark element as moved.
|
||||
$e.data(key, $p);
|
||||
|
||||
}
|
||||
|
||||
// Moved already?
|
||||
else {
|
||||
|
||||
// Condition is true? Bail.
|
||||
if (condition)
|
||||
return;
|
||||
|
||||
$p = $e.data(key);
|
||||
|
||||
// Move element back to its original location (using our placeholder).
|
||||
$e.insertAfter($p);
|
||||
|
||||
// Unmark element as moved.
|
||||
$e.removeData(key);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -1,193 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
AhF2loFrCEnlZw==
|
||||
=u0eg
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@@ -1,127 +0,0 @@
|
||||
|
||||
/* Banner */
|
||||
|
||||
#banner {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-direction', 'column');
|
||||
@include vendor('justify-content', 'center');
|
||||
cursor: default;
|
||||
height: 100vh;
|
||||
min-height: 35em;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
|
||||
h2 {
|
||||
@include vendor('transform', 'scale(1)');
|
||||
@include vendor('transition', ('transform 0.5s ease', 'opacity 0.5s ease'));
|
||||
display: inline-block;
|
||||
font-size: 1.75em;
|
||||
opacity: 1;
|
||||
padding: 0.35em 1em;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
|
||||
&:before, &:after {
|
||||
@include vendor('transition', 'width 1s ease');
|
||||
@include vendor('transition-delay', '0.25s');
|
||||
background: _palette(fg-bold);
|
||||
content: '';
|
||||
display: block;
|
||||
height: 2px;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&:before {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
&:after {
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
@include vendor('transition', 'opacity 0.5s ease');
|
||||
@include vendor('transition-delay', '1s');
|
||||
margin-bottom: 25px;
|
||||
opacity: 1;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
@include padding(7em, 3em);
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
|
||||
.particles-js-canvas-el {
|
||||
@include vendor('transition', 'opacity #{_duration(fadein)} ease-in-out');
|
||||
@include vendor('transition-delay', '1s');
|
||||
opacity: 1;
|
||||
|
||||
@include breakpoint(medium) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body.is-loading {
|
||||
#banner {
|
||||
h1 {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@include vendor('transform', 'scale(0.95)');
|
||||
opacity: 0;
|
||||
|
||||
&:before, &:after {
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.particles-js-canvas-el {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.particle {
|
||||
position: relative;
|
||||
user-select: none;
|
||||
background: _palette(bg);
|
||||
|
||||
@include breakpoint(medium) {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.particles-js-canvas-el {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
z-index: 1;
|
||||
user-select: auto;
|
||||
}
|
||||
}
|
||||
@@ -1,223 +0,0 @@
|
||||
|
||||
/* Basic */
|
||||
|
||||
@-ms-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
|
||||
body {
|
||||
background: _palette(bg);
|
||||
|
||||
&.is-loading {
|
||||
*, *:before, *:after {
|
||||
@include vendor('animation', 'none !important');
|
||||
@include vendor('transition', 'none !important');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body, input, select, textarea {
|
||||
color: _palette(fg);
|
||||
font-family: _font(family);
|
||||
font-size: 18px;
|
||||
font-weight: _font(weight);
|
||||
letter-spacing: _size(letter-spacing);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
a {
|
||||
@include vendor('transition', ('color #{_duration(transitions)} ease', 'border-bottom-color #{_duration(transitions)} ease'));
|
||||
border-bottom: dotted 1px;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
strong, b {
|
||||
color: _palette(fg-bold);
|
||||
font-weight: _font(weight-bold);
|
||||
}
|
||||
|
||||
em, i {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
}
|
||||
|
||||
.h1, .h2, .h3, .h4, .h5, .h6,
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: _palette(fg-bold);
|
||||
font-weight: _font(weight-extrabold);
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
line-height: 1em;
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
text-transform: uppercase;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
h2,
|
||||
.h2 {
|
||||
font-size: 1.35em;
|
||||
line-height: 1.4;
|
||||
|
||||
@include breakpoint(small) {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
}
|
||||
|
||||
.h3,
|
||||
h3 {
|
||||
font-size: 1.15em;
|
||||
line-height: 1.4;
|
||||
|
||||
@include breakpoint(small) {
|
||||
font-size: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
.h4,
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.h5,
|
||||
h5 {
|
||||
font-size: 0.8em;
|
||||
line-height: 1.5em;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.h6,
|
||||
h6 {
|
||||
font-size: 0.7em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
font-size: 0.8em;
|
||||
position: relative;
|
||||
top: 0.5em;
|
||||
}
|
||||
|
||||
sup {
|
||||
font-size: 0.8em;
|
||||
position: relative;
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: solid 2px _palette(border);
|
||||
margin: (_size(element-margin) * 1.5) 0;
|
||||
|
||||
&.major {
|
||||
margin: (_size(element-margin) * 2.25) 0;
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: solid 4px _palette(border);
|
||||
font-style: italic;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding: 0.5em 0 0.5em 2em;
|
||||
}
|
||||
|
||||
code {
|
||||
background: _palette(border-bg);
|
||||
border-radius: 3px;
|
||||
font-family: _font(family-fixed);
|
||||
font-size: 0.9em;
|
||||
letter-spacing: 0;
|
||||
margin: 0 0.25em;
|
||||
padding: 0.25em 0.65em;
|
||||
}
|
||||
|
||||
pre {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
font-family: _font(family-fixed);
|
||||
font-size: 0.9em;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
code {
|
||||
display: block;
|
||||
line-height: 1.75em;
|
||||
padding: 1em 1.5em;
|
||||
overflow-x: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
header {
|
||||
p {
|
||||
color: _palette(fg-light);
|
||||
position: relative;
|
||||
top: -0.25em;
|
||||
}
|
||||
|
||||
h2 + p {
|
||||
}
|
||||
|
||||
h3 + p {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h4 + p,
|
||||
h5 + p,
|
||||
h6 + p {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
&.major {
|
||||
margin: 0 0 (_size(element-margin) * 1.75) 0;
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: solid 2px _palette(border);
|
||||
display: inline-block;
|
||||
padding-bottom: 1em;
|
||||
position: relative;
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
height: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
color: _palette(fg);
|
||||
top: 0;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
|
||||
/* Box */
|
||||
|
||||
.box {
|
||||
border-radius: 3px;
|
||||
border: solid 2px _palette(border);
|
||||
margin-bottom: _size(element-margin);
|
||||
padding: 1.5em;
|
||||
|
||||
> :last-child,
|
||||
> :last-child > :last-child,
|
||||
> :last-child > :last-child > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Icon */
|
||||
|
||||
.icon--style1 { fill: _palette(bg); }
|
||||
.icon--style2 { fill: _palette(accent2, bg); }
|
||||
.icon--style3 { fill: _palette(accent3, bg); }
|
||||
.icon--style4 { fill: _palette(accent4, bg); }
|
||||
|
||||
.icon--diamond {
|
||||
transform: rotate(-45deg);
|
||||
border-radius: 3px;
|
||||
border: 2px solid #dfdfdf;
|
||||
box-sizing: border-box;
|
||||
height: 5rem;
|
||||
width: 5rem;
|
||||
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.icon--diamond svg {
|
||||
margin: 1rem;
|
||||
width: 2.25rem;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
|
||||
/* Button */
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
@include vendor('appearance', 'none');
|
||||
@include vendor('transition', ('background-color #{_duration(transitions)} ease-in-out', 'color #{_duration(transitions)} ease-in-out'));
|
||||
background-color: transparent;
|
||||
border-radius: 3px;
|
||||
border: 0;
|
||||
box-shadow: inset 0 0 0 2px _palette(border);
|
||||
color: _palette(fg-bold);
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 0.8em;
|
||||
font-weight: _font(weight-bold);
|
||||
height: 3.125em;
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
line-height: 3.125em;
|
||||
padding: 0 2.75em;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:hover {
|
||||
background-color: _palette(border-bg);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: _palette(border2-bg);
|
||||
}
|
||||
|
||||
&.icon {
|
||||
&:before {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
&.fit {
|
||||
display: block;
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&.small {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
&.big {
|
||||
font-size: 1.35em;
|
||||
}
|
||||
|
||||
&.special {
|
||||
background-color: _palette(accent3, bg);
|
||||
box-shadow: none !important;
|
||||
color: _palette(accent3, fg-bold) !important;
|
||||
|
||||
&:hover {
|
||||
background-color: lighten(_palette(accent3, bg), 5) !important;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: darken(_palette(accent3, bg), 5) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
@include vendor('pointer-events', 'none');
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
height: 3.75em;
|
||||
line-height: 3.75em;
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
#contact {
|
||||
header {
|
||||
@include vendor('order', '1');
|
||||
|
||||
p {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.actions {
|
||||
@include vendor('order', '2');
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
display: block;
|
||||
text-align: center;
|
||||
|
||||
header {
|
||||
padding-right: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.actions {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
max-width: 20em;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
.actions {
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
|
||||
/* Features */
|
||||
|
||||
.features {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.features-icon {
|
||||
width: 100%;
|
||||
max-width: 2rem;
|
||||
margin-right: 2rem;
|
||||
fill: _palette(accent1, bg);
|
||||
}
|
||||
|
||||
.features-item {
|
||||
display: inline-flex;
|
||||
align-items: start;
|
||||
|
||||
padding: 4rem 4rem 4rem 3rem;
|
||||
text-align: left;
|
||||
width: 50%;
|
||||
|
||||
@for $i from 1 through _misc(max-features) {
|
||||
$j: 0.035 * $i;
|
||||
|
||||
&:nth-child(#{$i}) {
|
||||
background-color: rgba(0,0,0, $j);
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-child(1) {
|
||||
border-top-left-radius: 3px;
|
||||
}
|
||||
|
||||
&:nth-child(2) {
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
|
||||
&:nth-last-child(1) {
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
&:nth-last-child(2) {
|
||||
border-bottom-left-radius: 3px;
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
@include padding(3em, 2em);
|
||||
text-align: center;
|
||||
|
||||
&:before {
|
||||
left: 0;
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
position: relative;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
@include padding(3em, 0);
|
||||
background-color: transparent !important;
|
||||
border-top: solid 2px _palette(border);
|
||||
width: 100%;
|
||||
|
||||
&:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,166 +0,0 @@
|
||||
|
||||
/* Form */
|
||||
|
||||
form {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
}
|
||||
|
||||
label {
|
||||
color: _palette(fg-bold);
|
||||
display: block;
|
||||
font-size: 0.9em;
|
||||
font-weight: _font(weight-bold);
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select,
|
||||
textarea {
|
||||
@include vendor('appearance', 'none');
|
||||
background: _palette(border-bg);
|
||||
border-radius: 3px;
|
||||
border: none;
|
||||
color: inherit;
|
||||
display: block;
|
||||
outline: 0;
|
||||
padding: 0 1em;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
|
||||
&:invalid {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
box-shadow: 0 0 0 2px _palette(accent1, bg);
|
||||
}
|
||||
}
|
||||
|
||||
.select-wrapper {
|
||||
@include icon;
|
||||
display: block;
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
@include vendor('pointer-events', 'none');
|
||||
color: _palette(border);
|
||||
content: '\f078';
|
||||
display: block;
|
||||
height: _size(element-height);
|
||||
line-height: _size(element-height);
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
width: _size(element-height);
|
||||
}
|
||||
|
||||
select::-ms-expand {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select {
|
||||
height: _size(element-height);
|
||||
}
|
||||
|
||||
textarea {
|
||||
padding: 0.75em 1em;
|
||||
}
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"], {
|
||||
@include vendor('appearance', 'none');
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: -2em;
|
||||
opacity: 0;
|
||||
width: 1em;
|
||||
z-index: -1;
|
||||
|
||||
& + label {
|
||||
@include icon;
|
||||
color: _palette(fg);
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 1em;
|
||||
font-weight: _font(weight);
|
||||
padding-left: (_size(element-height) * 0.6) + 0.75em;
|
||||
padding-right: 0.75em;
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
background: _palette(border-bg);
|
||||
border-radius: 3px;
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: (_size(element-height) * 0.6);
|
||||
left: 0;
|
||||
line-height: (_size(element-height) * 0.575);
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
width: (_size(element-height) * 0.6);
|
||||
}
|
||||
}
|
||||
|
||||
&:checked + label {
|
||||
&:before {
|
||||
background: _palette(bg);
|
||||
color: _palette(fg-bold);
|
||||
content: '\f00c';
|
||||
}
|
||||
}
|
||||
|
||||
&:focus + label {
|
||||
&:before {
|
||||
box-shadow: 0 0 0 2px _palette(accent1, bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
& + label {
|
||||
&:before {
|
||||
border-radius: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type="radio"] {
|
||||
& + label {
|
||||
&:before {
|
||||
border-radius: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: _palette(fg-light) !important;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
color: _palette(fg-light) !important;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
color: _palette(fg-light) !important;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
color: _palette(fg-light) !important;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.formerize-placeholder {
|
||||
color: _palette(fg-light) !important;
|
||||
opacity: 1.0;
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
|
||||
@include vendor('transition', 'background-color #{_duration(transitions)} ease');
|
||||
background: _palette(bg);
|
||||
z-index: _misc(z-index-base);
|
||||
|
||||
height: 3em;
|
||||
line-height: 3em;
|
||||
|
||||
padding-left: 1.5rem;
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
@include breakpoint(small) {
|
||||
position: initial;
|
||||
height: auto;
|
||||
line-height: inherit;
|
||||
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
text-align: center
|
||||
}
|
||||
}
|
||||
|
||||
.header.alt {
|
||||
background: transparent;
|
||||
|
||||
h1 {
|
||||
@include vendor('pointer-events', 'none');
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.header-home {
|
||||
@include vendor('transition', 'opacity #{_duration(transitions)} ease');
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
a {
|
||||
border: 0;
|
||||
display: block;
|
||||
height: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
padding: 1rem 0;
|
||||
}
|
||||
}
|
||||
|
||||
.header-nav {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
li { padding: 0; }
|
||||
|
||||
|
||||
@include breakpoint(small) {
|
||||
justify-content: space-around;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.header-link {
|
||||
border: 0;
|
||||
color: _palette(fg-bold);
|
||||
font-size: 0.8em;
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
padding: 0 1.5rem;
|
||||
text-transform: uppercase;
|
||||
|
||||
@include breakpoint(small) {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
pre.highlight {
|
||||
color: #93A1A1;
|
||||
background-color: #002B36;
|
||||
|
||||
.c { color: #586E75 } /* Comment */
|
||||
.err { color: #93A1A1 } /* Error */
|
||||
.g { color: #93A1A1 } /* Generic */
|
||||
.k { color: #859900 } /* Keyword */
|
||||
.l { color: #93A1A1 } /* Literal */
|
||||
.n { color: #93A1A1 } /* Name */
|
||||
.o { color: #859900 } /* Operator */
|
||||
.x { color: #CB4B16 } /* Other */
|
||||
.p { color: #93A1A1 } /* Punctuation */
|
||||
.cm { color: #586E75 } /* Comment.Multiline */
|
||||
.cp { color: #859900 } /* Comment.Preproc */
|
||||
.c1 { color: #586E75 } /* Comment.Single */
|
||||
.cs { color: #859900 } /* Comment.Special */
|
||||
.gd { color: #2AA198 } /* Generic.Deleted */
|
||||
.ge { color: #93A1A1; font-style: italic } /* Generic.Emph */
|
||||
.gr { color: #DC322F } /* Generic.Error */
|
||||
.gh { color: #CB4B16 } /* Generic.Heading */
|
||||
.gi { color: #859900 } /* Generic.Inserted */
|
||||
.go { color: #93A1A1 } /* Generic.Output */
|
||||
.gp { color: #93A1A1 } /* Generic.Prompt */
|
||||
.gs { color: #93A1A1; font-weight: bold } /* Generic.Strong */
|
||||
.gu { color: #CB4B16 } /* Generic.Subheading */
|
||||
.gt { color: #93A1A1 } /* Generic.Traceback */
|
||||
.kc { color: #CB4B16 } /* Keyword.Constant */
|
||||
.kd { color: #268BD2 } /* Keyword.Declaration */
|
||||
.kn { color: #859900 } /* Keyword.Namespace */
|
||||
.kp { color: #859900 } /* Keyword.Pseudo */
|
||||
.kr { color: #268BD2 } /* Keyword.Reserved */
|
||||
.kt { color: #DC322F } /* Keyword.Type */
|
||||
.ld { color: #93A1A1 } /* Literal.Date */
|
||||
.m { color: #2AA198 } /* Literal.Number */
|
||||
.s { color: #2AA198 } /* Literal.String */
|
||||
.na { color: #93A1A1 } /* Name.Attribute */
|
||||
.nb { color: #B58900 } /* Name.Builtin */
|
||||
.nc { color: #268BD2 } /* Name.Class */
|
||||
.no { color: #CB4B16 } /* Name.Constant */
|
||||
.nd { color: #268BD2 } /* Name.Decorator */
|
||||
.ni { color: #CB4B16 } /* Name.Entity */
|
||||
.ne { color: #CB4B16 } /* Name.Exception */
|
||||
.nf { color: #268BD2 } /* Name.Function */
|
||||
.nl { color: #93A1A1 } /* Name.Label */
|
||||
.nn { color: #93A1A1 } /* Name.Namespace */
|
||||
.nx { color: #93A1A1 } /* Name.Other */
|
||||
.py { color: #93A1A1 } /* Name.Property */
|
||||
.nt { color: #268BD2 } /* Name.Tag */
|
||||
.nv { color: #268BD2 } /* Name.Variable */
|
||||
.ow { color: #859900 } /* Operator.Word */
|
||||
.w { color: #93A1A1 } /* Text.Whitespace */
|
||||
.mf { color: #2AA198 } /* Literal.Number.Float */
|
||||
.mh { color: #2AA198 } /* Literal.Number.Hex */
|
||||
.mi { color: #2AA198 } /* Literal.Number.Integer */
|
||||
.mo { color: #2AA198 } /* Literal.Number.Oct */
|
||||
.sb { color: #586E75 } /* Literal.String.Backtick */
|
||||
.sc { color: #2AA198 } /* Literal.String.Char */
|
||||
.sd { color: #93A1A1 } /* Literal.String.Doc */
|
||||
.s2 { color: #2AA198 } /* Literal.String.Double */
|
||||
.se { color: #CB4B16 } /* Literal.String.Escape */
|
||||
.sh { color: #93A1A1 } /* Literal.String.Heredoc */
|
||||
.si { color: #2AA198 } /* Literal.String.Interpol */
|
||||
.sx { color: #2AA198 } /* Literal.String.Other */
|
||||
.sr { color: #DC322F } /* Literal.String.Regex */
|
||||
.s1 { color: #2AA198 } /* Literal.String.Single */
|
||||
.ss { color: #2AA198 } /* Literal.String.Symbol */
|
||||
.bp { color: #268BD2 } /* Name.Builtin.Pseudo */
|
||||
.vc { color: #268BD2 } /* Name.Variable.Class */
|
||||
.vg { color: #268BD2 } /* Name.Variable.Global */
|
||||
.vi { color: #268BD2 } /* Name.Variable.Instance */
|
||||
.il { color: #2AA198 } /* Literal.Number.Integer.Long */
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
|
||||
/* Image */
|
||||
|
||||
.image {
|
||||
border-radius: 3px;
|
||||
border: 0;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
border-radius: 3px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
&.left {
|
||||
float: left;
|
||||
margin: 0 2em 2em 0;
|
||||
top: 0.25em;
|
||||
}
|
||||
|
||||
&.right {
|
||||
float: right;
|
||||
margin: 0 0 2em 2em;
|
||||
top: 0.25em;
|
||||
}
|
||||
|
||||
&.left,
|
||||
&.right {
|
||||
max-width: 40%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.fit {
|
||||
display: block;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
width: 100%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,219 +0,0 @@
|
||||
|
||||
/* List */
|
||||
|
||||
ol {
|
||||
list-style: decimal;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding-left: 1.25em;
|
||||
|
||||
li {
|
||||
padding-left: 0.25em;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: disc;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding-left: 1em;
|
||||
|
||||
li {
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
border-top: solid 1px _palette(border);
|
||||
padding: 0.5em 0;
|
||||
|
||||
&:first-child {
|
||||
border-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.icons {
|
||||
cursor: default;
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 0 1em 0 0;
|
||||
|
||||
&:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.major {
|
||||
padding: 1em 0;
|
||||
|
||||
li {
|
||||
padding-right: 3.5em;
|
||||
|
||||
&:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
padding: 0 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&.icons--flex {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
max-width: 980px;
|
||||
margin: auto;
|
||||
padding-left: 16px;
|
||||
|
||||
li {
|
||||
flex-basis: 33.333%;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
display: block;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
display: block;
|
||||
margin: 40px 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.icons__title {
|
||||
display: block;
|
||||
@extend .h3;
|
||||
margin-top: 40px;
|
||||
|
||||
@include breakpoint(small) {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.actions {
|
||||
cursor: default;
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 0 (_size(element-margin) * 0.75) 0 0;
|
||||
vertical-align: middle;
|
||||
|
||||
&:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.small {
|
||||
li {
|
||||
padding: 0 (_size(element-margin) * 0.375) 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.vertical {
|
||||
li {
|
||||
display: block;
|
||||
padding: (_size(element-margin) * 0.75) 0 0 0;
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
> * {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.small {
|
||||
li {
|
||||
padding: (_size(element-margin) * 0.375) 0 0 0;
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.fit {
|
||||
display: table;
|
||||
margin-left: (_size(element-margin) * -0.75);
|
||||
padding: 0;
|
||||
table-layout: fixed;
|
||||
width: calc(100% + #{(_size(element-margin) * 0.75)});
|
||||
|
||||
li {
|
||||
display: table-cell;
|
||||
padding: 0 0 0 (_size(element-margin) * 0.75);
|
||||
|
||||
> * {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.small {
|
||||
margin-left: (_size(element-margin) * -0.375);
|
||||
width: calc(100% + #{(_size(element-margin) * 0.375)});
|
||||
|
||||
li {
|
||||
padding: 0 0 0 (_size(element-margin) * 0.375);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
li {
|
||||
display: block;
|
||||
padding: (_size(element-margin) * 0.5) 0 0 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
> * {
|
||||
margin: 0 auto !important;
|
||||
max-width: 30em;
|
||||
width: 100%;
|
||||
|
||||
&.icon {
|
||||
&:before {
|
||||
margin-left: -1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.small {
|
||||
li {
|
||||
padding: (_size(element-margin) * 0.25) 0 0 0;
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dl {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
/* Page Wrapper + Menu */
|
||||
|
||||
#page-wrapper {
|
||||
@include vendor('transition', 'opacity #{_duration(menu)} ease');
|
||||
opacity: 1;
|
||||
padding-top: 3em;
|
||||
|
||||
&:before {
|
||||
background: rgba(0,0,0,0);
|
||||
content: '';
|
||||
display: block;
|
||||
display: none;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: _misc(z-index-base) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
/* Section/Article */
|
||||
|
||||
section, article {
|
||||
&.special {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
|
||||
/* Spotlight */
|
||||
|
||||
.spotlight {
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
|
||||
.image {
|
||||
@include vendor('order', '1');
|
||||
border-radius: 0;
|
||||
width: 40%;
|
||||
|
||||
img {
|
||||
border-radius: 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
@include padding(2em, 4em);
|
||||
@include vendor('order', '2');
|
||||
max-width: 48em;
|
||||
width: 60%;
|
||||
}
|
||||
|
||||
&:nth-child(2n) {
|
||||
@include vendor('flex-direction', 'row-reverse');
|
||||
}
|
||||
|
||||
@for $i from 1 through _misc(max-spotlights) {
|
||||
$j: 0.075 * $i;
|
||||
|
||||
&:nth-child(#{$i}) {
|
||||
background-color: rgba(0,0,0, $j);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(large) {
|
||||
.image {
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.content {
|
||||
width: 55%;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
display: block;
|
||||
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.image {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
@include padding(4em, 3em);
|
||||
max-width: none;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
.content {
|
||||
@include padding(3em, 2em);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
|
||||
/* Table */
|
||||
|
||||
.table-wrapper {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
table {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
width: 100%;
|
||||
|
||||
tbody {
|
||||
tr {
|
||||
border: solid 1px _palette(border);
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
|
||||
&:nth-child(2n + 1) {
|
||||
background-color: _palette(border-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.75em 0.75em;
|
||||
}
|
||||
|
||||
th {
|
||||
color: _palette(fg-bold);
|
||||
font-size: 0.9em;
|
||||
font-weight: _font(weight-bold);
|
||||
padding: 0 0.75em 0.75em 0.75em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: solid 2px _palette(border);
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top: solid 2px _palette(border);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
border-collapse: separate;
|
||||
|
||||
tbody {
|
||||
tr {
|
||||
td {
|
||||
border: solid 1px _palette(border);
|
||||
border-left-width: 0;
|
||||
border-top-width: 0;
|
||||
|
||||
&:first-child {
|
||||
border-left-width: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
td {
|
||||
border-top-width: 1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,256 +0,0 @@
|
||||
|
||||
/* Wrapper */
|
||||
|
||||
@mixin wrapper($p) {
|
||||
background-color: _palette($p, bg);
|
||||
color: _palette($p, fg);
|
||||
|
||||
// Basic
|
||||
|
||||
strong, b {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
|
||||
.h2, .h3, .h4, .h5, .h6,
|
||||
h2, h3, h4, h5, h6 {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
|
||||
code {
|
||||
background: _palette($p, border-bg);
|
||||
}
|
||||
|
||||
// Section/Article
|
||||
|
||||
header {
|
||||
p {
|
||||
color: _palette($p, fg-light);
|
||||
}
|
||||
|
||||
&.major {
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
|
||||
p {
|
||||
color: _palette($p, fg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Form
|
||||
|
||||
label {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select,
|
||||
textarea {
|
||||
background: _palette($p, border-bg);
|
||||
}
|
||||
|
||||
.select-wrapper {
|
||||
&:before {
|
||||
color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"], {
|
||||
& + label {
|
||||
color: _palette($p, fg);
|
||||
|
||||
&:before {
|
||||
background: _palette($p, border-bg);
|
||||
}
|
||||
}
|
||||
|
||||
&:checked + label {
|
||||
&:before {
|
||||
background: _palette($p, fg-bold);
|
||||
color: _palette($p, bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
.formerize-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
// Icon
|
||||
|
||||
.icon {
|
||||
&.major {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
// List
|
||||
|
||||
ul {
|
||||
&.alt {
|
||||
li {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Table
|
||||
|
||||
table {
|
||||
tbody {
|
||||
tr {
|
||||
border-color: _palette($p, border);
|
||||
|
||||
&:nth-child(2n + 1) {
|
||||
background-color: _palette($p, border-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
thead {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
tbody {
|
||||
tr {
|
||||
td {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Button
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
box-shadow: inset 0 0 0 2px _palette($p, border);
|
||||
color: _palette($p, fg-bold);
|
||||
|
||||
&:hover {
|
||||
background-color: _palette($p, border-bg);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: _palette($p, border2-bg);
|
||||
}
|
||||
}
|
||||
|
||||
// Features
|
||||
|
||||
.features {
|
||||
li {
|
||||
@include breakpoint(small) {
|
||||
border-top-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
@include padding(6em, 0);
|
||||
|
||||
> .inner {
|
||||
width: 60em;
|
||||
margin: 0 auto;
|
||||
|
||||
@include breakpoint(large) {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
> .inner--text {
|
||||
max-width: 45rem;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&.compressed {
|
||||
padding: 0.5em 0 0;
|
||||
|
||||
img {
|
||||
max-width: 150px;
|
||||
}
|
||||
}
|
||||
|
||||
&.style1 {
|
||||
@include wrapper(accent1);
|
||||
}
|
||||
|
||||
&.style2 {
|
||||
background-color: _palette(bg);
|
||||
}
|
||||
|
||||
&.style3 {
|
||||
@include wrapper(accent3);
|
||||
}
|
||||
|
||||
&.style4 {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
&.style5 {
|
||||
@include wrapper(accent2);
|
||||
}
|
||||
|
||||
&.style6 {
|
||||
@include wrapper(accent4);
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
@include padding(4em, 3em);
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
@include padding(3em, 2em);
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
$background: #282a36;
|
||||
$current-line: #44475a;
|
||||
$selection: #44475a;
|
||||
$foreground: #f8f8f2;
|
||||
$dark-foreground: mix($foreground, #000, 90%);
|
||||
$comment: #6272a4;
|
||||
$cyan: #8be9fd;
|
||||
$green: #50fa7b;
|
||||
$orange: #ffb86c;
|
||||
$pink: #ff79c6;
|
||||
$purple: #bd93f9;
|
||||
$red: #ff5555;
|
||||
$yellow: #f1fa8c;
|
||||
@@ -1,34 +0,0 @@
|
||||
/// Gets a duration value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _duration($keys...) {
|
||||
@return val($duration, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a font value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _font($keys...) {
|
||||
@return val($font, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a misc value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _misc($keys...) {
|
||||
@return val($misc, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a palette value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _palette($keys...) {
|
||||
@return val($palette, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a size value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _size($keys...) {
|
||||
@return val($size, $keys...);
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
/// Makes an element's :before pseudoelement a FontAwesome icon.
|
||||
/// @param {string} $content Optional content value to use.
|
||||
/// @param {string} $where Optional pseudoelement to target (before or after).
|
||||
@mixin icon($content: false, $where: before) {
|
||||
|
||||
text-decoration: none;
|
||||
|
||||
&:#{$where} {
|
||||
|
||||
@if $content {
|
||||
content: $content;
|
||||
}
|
||||
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-family: FontAwesome;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
text-transform: none !important;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Applies padding to an element, taking the current element-margin value into account.
|
||||
/// @param {mixed} $tb Top/bottom padding.
|
||||
/// @param {mixed} $lr Left/right padding.
|
||||
/// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
|
||||
/// @param {bool} $important If true, adds !important.
|
||||
@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
|
||||
|
||||
@if $important {
|
||||
$important: '!important';
|
||||
}
|
||||
|
||||
padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max(0.1em, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
|
||||
|
||||
}
|
||||
|
||||
/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
|
||||
/// @param {string} $svg SVG data URL.
|
||||
/// @return {string} Encoded SVG data URL.
|
||||
@function svg-url($svg) {
|
||||
|
||||
$svg: str-replace($svg, '"', '\'');
|
||||
$svg: str-replace($svg, '<', '%3C');
|
||||
$svg: str-replace($svg, '>', '%3E');
|
||||
$svg: str-replace($svg, '&', '%26');
|
||||
$svg: str-replace($svg, '#', '%23');
|
||||
$svg: str-replace($svg, '{', '%7B');
|
||||
$svg: str-replace($svg, '}', '%7D');
|
||||
$svg: str-replace($svg, ';', '%3B');
|
||||
|
||||
@return url("data:image/svg+xml;charset=utf8,#{$svg}");
|
||||
|
||||
}
|
||||
@@ -1,585 +0,0 @@
|
||||
// skel.scss v3.0.1 | (c) skel.io | MIT licensed */
|
||||
|
||||
// Vars.
|
||||
|
||||
/// Breakpoints.
|
||||
/// @var {list}
|
||||
$breakpoints: () !global;
|
||||
|
||||
/// Vendor prefixes.
|
||||
/// @var {list}
|
||||
$vendor-prefixes: (
|
||||
'-moz-',
|
||||
'-webkit-',
|
||||
'-ms-',
|
||||
''
|
||||
);
|
||||
|
||||
/// Properties that should be vendorized.
|
||||
/// @var {list}
|
||||
$vendor-properties: (
|
||||
'align-content',
|
||||
'align-items',
|
||||
'align-self',
|
||||
'animation',
|
||||
'animation-delay',
|
||||
'animation-direction',
|
||||
'animation-duration',
|
||||
'animation-fill-mode',
|
||||
'animation-iteration-count',
|
||||
'animation-name',
|
||||
'animation-play-state',
|
||||
'animation-timing-function',
|
||||
'appearance',
|
||||
'backface-visibility',
|
||||
'box-sizing',
|
||||
'filter',
|
||||
'flex',
|
||||
'flex-basis',
|
||||
'flex-direction',
|
||||
'flex-flow',
|
||||
'flex-grow',
|
||||
'flex-shrink',
|
||||
'flex-wrap',
|
||||
'justify-content',
|
||||
'order',
|
||||
'perspective',
|
||||
'pointer-events',
|
||||
'transform',
|
||||
'transform-origin',
|
||||
'transform-style',
|
||||
'transition',
|
||||
'transition-delay',
|
||||
'transition-duration',
|
||||
'transition-property',
|
||||
'transition-timing-function',
|
||||
'user-select'
|
||||
);
|
||||
|
||||
/// Values that should be vendorized.
|
||||
/// @var {list}
|
||||
$vendor-values: (
|
||||
'filter',
|
||||
'flex',
|
||||
'linear-gradient',
|
||||
'radial-gradient',
|
||||
'transform'
|
||||
);
|
||||
|
||||
// Functions.
|
||||
|
||||
/// Removes a specific item from a list.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {list} $list List.
|
||||
/// @param {integer} $index Index.
|
||||
/// @return {list} Updated list.
|
||||
@function remove-nth($list, $index) {
|
||||
|
||||
$result: null;
|
||||
|
||||
@if type-of($index) != number {
|
||||
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
|
||||
}
|
||||
@else if $index == 0 {
|
||||
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
|
||||
}
|
||||
@else if abs($index) > length($list) {
|
||||
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
|
||||
}
|
||||
@else {
|
||||
|
||||
$result: ();
|
||||
$index: if($index < 0, length($list) + $index + 1, $index);
|
||||
|
||||
@for $i from 1 through length($list) {
|
||||
|
||||
@if $i != $index {
|
||||
$result: append($result, nth($list, $i));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@return $result;
|
||||
|
||||
}
|
||||
|
||||
/// Replaces a substring within another string.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {string} $string String.
|
||||
/// @param {string} $search Substring.
|
||||
/// @param {string} $replace Replacement.
|
||||
/// @return {string} Updated string.
|
||||
@function str-replace($string, $search, $replace: '') {
|
||||
|
||||
$index: str-index($string, $search);
|
||||
|
||||
@if $index {
|
||||
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
|
||||
}
|
||||
|
||||
@return $string;
|
||||
|
||||
}
|
||||
|
||||
/// Replaces a substring within each string in a list.
|
||||
/// @param {list} $strings List of strings.
|
||||
/// @param {string} $search Substring.
|
||||
/// @param {string} $replace Replacement.
|
||||
/// @return {list} Updated list of strings.
|
||||
@function str-replace-all($strings, $search, $replace: '') {
|
||||
|
||||
@each $string in $strings {
|
||||
$strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
|
||||
}
|
||||
|
||||
@return $strings;
|
||||
|
||||
}
|
||||
|
||||
/// Gets a value from a map.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {map} $map Map.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function val($map, $keys...) {
|
||||
|
||||
@if nth($keys, 1) == null {
|
||||
$keys: remove-nth($keys, 1);
|
||||
}
|
||||
|
||||
@each $key in $keys {
|
||||
$map: map-get($map, $key);
|
||||
}
|
||||
|
||||
@return $map;
|
||||
|
||||
}
|
||||
|
||||
// Mixins.
|
||||
|
||||
/// Sets the global box model.
|
||||
/// @param {string} $model Model (default is content).
|
||||
@mixin boxModel($model: 'content') {
|
||||
|
||||
$x: $model + '-box';
|
||||
|
||||
*, *:before, *:after {
|
||||
-moz-box-sizing: #{$x};
|
||||
-webkit-box-sizing: #{$x};
|
||||
box-sizing: #{$x};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Wraps @content in a @media block using a given breakpoint.
|
||||
/// @param {string} $breakpoint Breakpoint.
|
||||
/// @param {map} $queries Additional queries.
|
||||
@mixin breakpoint($breakpoint: null, $queries: null) {
|
||||
|
||||
$query: 'screen';
|
||||
|
||||
// Breakpoint.
|
||||
@if $breakpoint and map-has-key($breakpoints, $breakpoint) {
|
||||
$query: $query + ' and ' + map-get($breakpoints, $breakpoint);
|
||||
}
|
||||
|
||||
// Queries.
|
||||
@if $queries {
|
||||
@each $k, $v in $queries {
|
||||
$query: $query + ' and (' + $k + ':' + $v + ')';
|
||||
}
|
||||
}
|
||||
|
||||
@media #{$query} {
|
||||
@content;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Wraps @content in a @media block targeting a specific orientation.
|
||||
/// @param {string} $orientation Orientation.
|
||||
@mixin orientation($orientation) {
|
||||
@media screen and (orientation: #{$orientation}) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
/// Utility mixin for containers.
|
||||
/// @param {mixed} $width Width.
|
||||
@mixin containers($width) {
|
||||
|
||||
// Locked?
|
||||
$lock: false;
|
||||
|
||||
@if length($width) == 2 {
|
||||
$width: nth($width, 1);
|
||||
$lock: true;
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
.container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; }
|
||||
.container.\37 5\25 { width: $width * 0.75; }
|
||||
.container.\35 0\25 { width: $width * 0.5; }
|
||||
.container.\32 5\25 { width: $width * 0.25; }
|
||||
|
||||
// Main class.
|
||||
.container {
|
||||
@if $lock {
|
||||
width: $width !important;
|
||||
}
|
||||
@else {
|
||||
width: $width;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Utility mixin for grid.
|
||||
/// @param {list} $gutters Column and row gutters (default is 40px).
|
||||
/// @param {string} $breakpointName Optional breakpoint name.
|
||||
@mixin grid($gutters: 40px, $breakpointName: null) {
|
||||
|
||||
// Gutters.
|
||||
@include grid-gutters($gutters);
|
||||
@include grid-gutters($gutters, \32 00\25, 2);
|
||||
@include grid-gutters($gutters, \31 50\25, 1.5);
|
||||
@include grid-gutters($gutters, \35 0\25, 0.5);
|
||||
@include grid-gutters($gutters, \32 5\25, 0.25);
|
||||
|
||||
// Cells.
|
||||
$x: '';
|
||||
|
||||
@if $breakpointName {
|
||||
$x: '\\28' + $breakpointName + '\\29';
|
||||
}
|
||||
|
||||
.\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; }
|
||||
.\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; }
|
||||
.\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; }
|
||||
.\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; }
|
||||
.\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; }
|
||||
.\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; }
|
||||
.\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; }
|
||||
.\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; }
|
||||
.\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; }
|
||||
.\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; }
|
||||
.\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; }
|
||||
.\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; }
|
||||
|
||||
.\31 2u\24#{$x} + *,
|
||||
.\31 1u\24#{$x} + *,
|
||||
.\31 0u\24#{$x} + *,
|
||||
.\39 u\24#{$x} + *,
|
||||
.\38 u\24#{$x} + *,
|
||||
.\37 u\24#{$x} + *,
|
||||
.\36 u\24#{$x} + *,
|
||||
.\35 u\24#{$x} + *,
|
||||
.\34 u\24#{$x} + *,
|
||||
.\33 u\24#{$x} + *,
|
||||
.\32 u\24#{$x} + *,
|
||||
.\31 u\24#{$x} + * {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
.\-11u#{$x} { margin-left: 91.6666666667% }
|
||||
.\-10u#{$x} { margin-left: 83.3333333333% }
|
||||
.\-9u#{$x} { margin-left: 75% }
|
||||
.\-8u#{$x} { margin-left: 66.6666666667% }
|
||||
.\-7u#{$x} { margin-left: 58.3333333333% }
|
||||
.\-6u#{$x} { margin-left: 50% }
|
||||
.\-5u#{$x} { margin-left: 41.6666666667% }
|
||||
.\-4u#{$x} { margin-left: 33.3333333333% }
|
||||
.\-3u#{$x} { margin-left: 25% }
|
||||
.\-2u#{$x} { margin-left: 16.6666666667% }
|
||||
.\-1u#{$x} { margin-left: 8.3333333333% }
|
||||
|
||||
}
|
||||
|
||||
/// Utility mixin for grid.
|
||||
/// @param {list} $gutters Gutters.
|
||||
/// @param {string} $class Optional class name.
|
||||
/// @param {integer} $multiplier Multiplier (default is 1).
|
||||
@mixin grid-gutters($gutters, $class: null, $multiplier: 1) {
|
||||
|
||||
// Expand gutters if it's not a list.
|
||||
@if length($gutters) == 1 {
|
||||
$gutters: ($gutters, 0);
|
||||
}
|
||||
|
||||
// Get column and row gutter values.
|
||||
$c: nth($gutters, 1);
|
||||
$r: nth($gutters, 2);
|
||||
|
||||
// Get class (if provided).
|
||||
$x: '';
|
||||
|
||||
@if $class {
|
||||
$x: '.' + $class;
|
||||
}
|
||||
|
||||
// Default.
|
||||
.row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); }
|
||||
.row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
|
||||
|
||||
// Uniform.
|
||||
.row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); }
|
||||
.row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
|
||||
|
||||
}
|
||||
|
||||
/// Wraps @content in vendorized keyframe blocks.
|
||||
/// @param {string} $name Name.
|
||||
@mixin keyframes($name) {
|
||||
|
||||
@-moz-keyframes #{$name} { @content; }
|
||||
@-webkit-keyframes #{$name} { @content; }
|
||||
@-ms-keyframes #{$name} { @content; }
|
||||
@keyframes #{$name} { @content; }
|
||||
|
||||
}
|
||||
|
||||
///
|
||||
/// Sets breakpoints.
|
||||
/// @param {map} $x Breakpoints.
|
||||
///
|
||||
@mixin skel-breakpoints($x: ()) {
|
||||
$breakpoints: $x !global;
|
||||
}
|
||||
|
||||
///
|
||||
/// Initializes layout module.
|
||||
/// @param {map} config Config.
|
||||
///
|
||||
@mixin skel-layout($config: ()) {
|
||||
|
||||
// Config.
|
||||
$configPerBreakpoint: ();
|
||||
|
||||
$z: map-get($config, 'breakpoints');
|
||||
|
||||
@if $z {
|
||||
$configPerBreakpoint: $z;
|
||||
}
|
||||
|
||||
// Reset.
|
||||
$x: map-get($config, 'reset');
|
||||
|
||||
@if $x {
|
||||
|
||||
/* Reset */
|
||||
|
||||
@include reset($x);
|
||||
|
||||
}
|
||||
|
||||
// Box model.
|
||||
$x: map-get($config, 'boxModel');
|
||||
|
||||
@if $x {
|
||||
|
||||
/* Box Model */
|
||||
|
||||
@include boxModel($x);
|
||||
|
||||
}
|
||||
|
||||
// Containers.
|
||||
$containers: map-get($config, 'containers');
|
||||
|
||||
@if $containers {
|
||||
|
||||
/* Containers */
|
||||
|
||||
.container {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
// Use default is $containers is just "true".
|
||||
@if $containers == true {
|
||||
$containers: 960px;
|
||||
}
|
||||
|
||||
// Apply base.
|
||||
@include containers($containers);
|
||||
|
||||
// Apply per-breakpoint.
|
||||
@each $name in map-keys($breakpoints) {
|
||||
|
||||
// Get/use breakpoint setting if it exists.
|
||||
$x: map-get($configPerBreakpoint, $name);
|
||||
|
||||
// Per-breakpoint config exists?
|
||||
@if $x {
|
||||
$y: map-get($x, 'containers');
|
||||
|
||||
// Setting exists? Use it.
|
||||
@if $y {
|
||||
$containers: $y;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Create @media block.
|
||||
@media screen and #{map-get($breakpoints, $name)} {
|
||||
@include containers($containers);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Grid.
|
||||
$grid: map-get($config, 'grid');
|
||||
|
||||
@if $grid {
|
||||
|
||||
/* Grid */
|
||||
|
||||
// Use defaults if $grid is just "true".
|
||||
@if $grid == true {
|
||||
$grid: ();
|
||||
}
|
||||
|
||||
// Sub-setting: Gutters.
|
||||
$grid-gutters: 40px;
|
||||
$x: map-get($grid, 'gutters');
|
||||
|
||||
@if $x {
|
||||
$grid-gutters: $x;
|
||||
}
|
||||
|
||||
// Rows.
|
||||
.row {
|
||||
border-bottom: solid 1px transparent;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.row > * {
|
||||
float: left;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.row:after, .row:before {
|
||||
content: '';
|
||||
display: block;
|
||||
clear: both;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.row.uniform > * > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.row.uniform > * > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
// Gutters (0%).
|
||||
@include grid-gutters($grid-gutters, \30 \25, 0);
|
||||
|
||||
// Apply base.
|
||||
@include grid($grid-gutters);
|
||||
|
||||
// Apply per-breakpoint.
|
||||
@each $name in map-keys($breakpoints) {
|
||||
|
||||
// Get/use breakpoint setting if it exists.
|
||||
$x: map-get($configPerBreakpoint, $name);
|
||||
|
||||
// Per-breakpoint config exists?
|
||||
@if $x {
|
||||
$y: map-get($x, 'grid');
|
||||
|
||||
// Setting exists?
|
||||
@if $y {
|
||||
|
||||
// Sub-setting: Gutters.
|
||||
$x: map-get($y, 'gutters');
|
||||
|
||||
@if $x {
|
||||
$grid-gutters: $x;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Create @media block.
|
||||
@media screen and #{map-get($breakpoints, $name)} {
|
||||
@include grid($grid-gutters, $name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Resets browser styles.
|
||||
/// @param {string} $mode Mode (default is 'normalize').
|
||||
@mixin reset($mode: 'normalize') {
|
||||
|
||||
@if $mode == 'normalize' {
|
||||
|
||||
// normalize.css v3.0.2 | MIT License | git.io/normalize
|
||||
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
|
||||
|
||||
}
|
||||
@else if $mode == 'full' {
|
||||
|
||||
// meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain)
|
||||
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Vendorizes a declaration's property and/or value(s).
|
||||
/// @param {string} $property Property.
|
||||
/// @param {mixed} $value String/list of value(s).
|
||||
@mixin vendor($property, $value) {
|
||||
|
||||
// Determine if property should expand.
|
||||
$expandProperty: index($vendor-properties, $property);
|
||||
|
||||
// Determine if value should expand (and if so, add '-prefix-' placeholder).
|
||||
$expandValue: false;
|
||||
|
||||
@each $x in $value {
|
||||
@each $y in $vendor-values {
|
||||
@if $y == str-slice($x, 1, str-length($y)) {
|
||||
|
||||
$value: set-nth($value, index($value, $x), '-prefix-' + $x);
|
||||
$expandValue: true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Expand property?
|
||||
@if $expandProperty {
|
||||
@each $vendor in $vendor-prefixes {
|
||||
#{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||
}
|
||||
}
|
||||
|
||||
// Expand just the value?
|
||||
@elseif $expandValue {
|
||||
@each $vendor in $vendor-prefixes {
|
||||
#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||
}
|
||||
}
|
||||
|
||||
// Neither? Treat them as a normal declaration.
|
||||
@else {
|
||||
#{$property}: #{$value};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
@import "drac";
|
||||
|
||||
// Misc.
|
||||
$misc: (
|
||||
max-spotlights: 10,
|
||||
max-features: 10,
|
||||
z-index-base: 10000
|
||||
);
|
||||
|
||||
// Duration.
|
||||
$duration: (
|
||||
transitions: 0.2s,
|
||||
menu: 0.5s,
|
||||
fadein: 3s
|
||||
);
|
||||
|
||||
// Size.
|
||||
$size: (
|
||||
element-height: 2.75em,
|
||||
element-margin: 2em,
|
||||
letter-spacing: 0,
|
||||
letter-spacing-alt: 0.1em
|
||||
);
|
||||
|
||||
// Font.
|
||||
$font: (
|
||||
family: (-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif),
|
||||
family-fixed: (SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace),
|
||||
weight: 400,
|
||||
weight-bold: 600,
|
||||
weight-extrabold: 800
|
||||
);
|
||||
|
||||
// Palette.
|
||||
$palette: (
|
||||
bg: $background,
|
||||
fg: $foreground,
|
||||
fg-bold: $foreground,
|
||||
fg-light: rgba($foreground, 0.5),
|
||||
border: $foreground,
|
||||
border-bg: rgba(144,144,144,0.25),
|
||||
border2: $foreground,
|
||||
border2-bg: rgba(144,144,144,0.5),
|
||||
|
||||
accent1: (
|
||||
bg: $pink,
|
||||
fg-bold: #ffffff,
|
||||
fg: mix($pink, #ffffff, 25%),
|
||||
fg-light: mix($pink, #ffffff, 40%),
|
||||
border: rgba(0,0,0,0.125),
|
||||
border-bg: rgba(255,255,255,0.075),
|
||||
border2: rgba(0,0,0,0.25),
|
||||
border2-bg: rgba(255,255,255,0.2)
|
||||
),
|
||||
|
||||
accent2: (
|
||||
bg: #ffffff,
|
||||
fg-bold: #41505E,
|
||||
fg: #4E4852,
|
||||
fg-light: #8E8892,
|
||||
border: #dfdfdf,
|
||||
border-bg: rgba(0,0,0,0.0375),
|
||||
border2: #bfbfbf,
|
||||
border2-bg: rgba(0,0,0,0.1)
|
||||
),
|
||||
|
||||
accent3: (
|
||||
bg: $red,
|
||||
fg-bold: $foreground,
|
||||
fg: #282a36,//mix($nord11, #ffffff, 25%),
|
||||
fg-light: #282a36,
|
||||
border: rgba(0,0,0,0.125),
|
||||
border-bg: rgba(255,255,255,0.075),
|
||||
border2: rgba(0,0,0,0.25),
|
||||
border2-bg: rgba(255,255,255,0.2)
|
||||
),
|
||||
|
||||
accent4: (
|
||||
bg: mix(#44475a, #000, 50%),
|
||||
fg-bold: $foreground,
|
||||
fg: $dark-foreground,
|
||||
fg-light: $dark-foreground,
|
||||
border: rgba(0,0,0,0.125),
|
||||
border-bg: rgba(255,255,255,0.075),
|
||||
border2: rgba(0,0,0,0.25),
|
||||
border2-bg: rgba(255,255,255,0.2)
|
||||
),
|
||||
|
||||
accent5: (
|
||||
bg: #e2e2e2,
|
||||
fg-bold: #ffffff,
|
||||
fg: mix($pink, #ffffff, 25%),
|
||||
fg-light: mix($pink, #ffffff, 40%),
|
||||
border: rgba(0,0,0,0.125),
|
||||
border-bg: rgba(255,255,255,0.075),
|
||||
border2: rgba(0,0,0,0.25),
|
||||
border2-bg: rgba(255,255,255,0.2)
|
||||
),
|
||||
);
|
||||
@@ -1,260 +0,0 @@
|
||||
---
|
||||
---
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
|
||||
/*
|
||||
Spectral by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
@import 'libs/skel';
|
||||
|
||||
@include skel-breakpoints((
|
||||
xlarge: '(max-width: 1680px)',
|
||||
large: '(max-width: 1280px)',
|
||||
medium: '(max-width: 980px)',
|
||||
small: '(max-width: 736px)',
|
||||
xsmall: '(max-width: 480px)'
|
||||
));
|
||||
|
||||
@include skel-layout((
|
||||
reset: 'full',
|
||||
boxModel: 'border',
|
||||
grid: ( gutters: 1.5em )
|
||||
));
|
||||
|
||||
@import 'components/basic';
|
||||
@import 'components/section';
|
||||
@import 'components/form';
|
||||
@import 'components/box';
|
||||
@import 'components/image';
|
||||
@import 'components/list';
|
||||
@import 'components/table';
|
||||
@import 'components/button';
|
||||
@import 'components/features';
|
||||
@import 'components/spotlight';
|
||||
@import 'components/wrapper';
|
||||
@import 'components/menu';
|
||||
@import 'components/header';
|
||||
@import 'components/banner';
|
||||
@import 'components/contact';
|
||||
@import 'components/highlighting';
|
||||
|
||||
/* Main */
|
||||
|
||||
#main {
|
||||
|
||||
> header:before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: -1;
|
||||
|
||||
display: block;
|
||||
background-image: inherit;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
filter: blur(3px) brightness(40%);
|
||||
}
|
||||
|
||||
> header {
|
||||
@include padding(12em, 0);
|
||||
position: relative;
|
||||
text-align: center;
|
||||
z-index: -2;
|
||||
|
||||
> * {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.75em;
|
||||
margin: 0 0 (_size(element-margin) * 0.25) 0;
|
||||
}
|
||||
|
||||
p {
|
||||
color: inherit;
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
text-transform: uppercase;
|
||||
top: 0;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(xlarge) {
|
||||
@include padding(10em, 0);
|
||||
}
|
||||
|
||||
@include breakpoint(large) {
|
||||
@include padding(8em, 3em);
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
@include padding(10em, 3em);
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
@include padding(5em, 3em);
|
||||
|
||||
h2 {
|
||||
font-size: 1.25em;
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body.is-mobile {
|
||||
#main {
|
||||
> header {
|
||||
background-attachment: scroll;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
|
||||
#footer {
|
||||
padding: 4em 0 3.5em;
|
||||
background-color: darken(_palette(bg), 8);
|
||||
text-align: center;
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
|
||||
.icons {
|
||||
font-size: 1.25em;
|
||||
|
||||
a {
|
||||
|
||||
&:hover {
|
||||
color: _palette(fg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.copyright, .cotech-text {
|
||||
font-size: 0.8em;
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
list-style: none;
|
||||
padding: 0.25em 0;
|
||||
|
||||
|
||||
li {
|
||||
border-left: solid 1px _palette(fg-light);
|
||||
display: inline-block;
|
||||
line-height: 1em;
|
||||
margin-left: 1em;
|
||||
padding-left: 1em;
|
||||
|
||||
&:first-child {
|
||||
border-left: 0;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
|
||||
&:hover {
|
||||
color: _palette(fg);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(xsmall) {
|
||||
border: 0;
|
||||
display: block;
|
||||
line-height: 1.65em;
|
||||
margin: 0;
|
||||
padding: 0.5em 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.row {
|
||||
display: flex;
|
||||
margin: 0 10%;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
.column {
|
||||
flex: 50%;
|
||||
}
|
||||
|
||||
.cotech-box {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
.cotech-text {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.cotech-logo {
|
||||
height: 1em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
@include breakpoint(medium) {
|
||||
@include padding(4em, 0em);
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
@include padding(3em, 0em);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Landing */
|
||||
|
||||
body.landing {
|
||||
#page-wrapper {
|
||||
background-attachment: fixed;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
#page-wrapper {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
#footer {
|
||||
background-color: darken(transparentize(_palette(bg), 0.1), 8);
|
||||
}
|
||||
}
|
||||
|
||||
body.is-mobile {
|
||||
&.landing {
|
||||
#page-wrapper {
|
||||
background: none;
|
||||
}
|
||||
|
||||
#banner,
|
||||
.wrapper.style4 {
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
#footer {
|
||||
background-color: darken(_palette(bg), 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="creative-commons" class="svg-inline--fa fa-creative-commons fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="rgba(255,255,255,0.9)" d="M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"></path></svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1 +0,0 @@
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="mastodon" class="svg-inline--fa fa-mastodon fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#fff" d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
||||
|
Before Width: | Height: | Size: 843 B |
@@ -1 +0,0 @@
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" class="svg-inline--fa fa-twitter fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>
|
||||
|
Before Width: | Height: | Size: 1017 B |
@@ -1,8 +0,0 @@
|
||||
---
|
||||
layout: spotlight
|
||||
title: Blog
|
||||
tiles-source: posts
|
||||
tiles-limit: 50
|
||||
---
|
||||
|
||||
### Blog
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
title: Home
|
||||
description: Autonomic Co-operative.
|
||||
meta_description: Autonomic is a tech co-operative that builds and runs infrastructure to help people make a positive impact on the world.
|
||||
---
|
||||