Compare commits
89 Commits
1.0.3
...
footer-tex
Author | SHA1 | Date | |
---|---|---|---|
a2f5a6cbac | |||
8cdacd0901
|
|||
48e654008e
|
|||
d72cc7389c
|
|||
ef18228bee
|
|||
13622fd105
|
|||
ea3afbb4e1
|
|||
13357d685a
|
|||
693e8c9665 | |||
30d86673c5 | |||
86a7eb0ea5 | |||
cdea7563f4 | |||
b29e79f493 | |||
4dff7a9a12 | |||
b2d8d569a6 | |||
ab31c1902e | |||
9e79cc2d24 | |||
6086c318bd | |||
ac4d46d4bf | |||
1e60a29875 | |||
5d21e5ecb3 | |||
56a73b36af | |||
0c863bb5a7 | |||
81481b23df | |||
a533060c88 | |||
5fdac7c16f | |||
510a6920cf | |||
4520bcd736 | |||
947a4b9a0a | |||
bf20dec44a | |||
287b755e3d | |||
edb3d64cca | |||
19c715c611 | |||
ef1d576244 | |||
adcd1ceec4 | |||
4394fdb749 | |||
3c27f2b74a | |||
5f90749d0e | |||
bbbd6a7134 | |||
d8be4eb58c | |||
3883a2c5b1 | |||
db69c2e7ea | |||
3887a60299 | |||
a643595a95 | |||
2521064a34 | |||
4d041ec7dd | |||
74d2dbb867 | |||
04f2e8eb28 | |||
d97b124a79 | |||
1ad7a4368d | |||
f1d93b1719 | |||
4aaeac1f07 | |||
7220ee6178 | |||
3fce3c1a7a | |||
5832ee4b12 | |||
4983b916c7 | |||
665a3690b1 | |||
7584dc796e | |||
5502122e21 | |||
b056420f9e | |||
0564bec241 | |||
186bc4f373 | |||
7d9b81b324 | |||
a50249fe22 | |||
9443912519 | |||
9c4166e573 | |||
39c391e803 | |||
33add8fd8f | |||
1f3ada29d7 | |||
442d758cb4 | |||
b0a959e2e4 | |||
bdea07164d | |||
cf4f1fbd46 | |||
81a96fbf34 | |||
eec8b982eb | |||
9ed30e8717 | |||
f675143d59 | |||
bbea557322 | |||
c23bf3f8d9 | |||
d51f265fd5 | |||
4e1d28ece6 | |||
96384a91ea | |||
43559560e8 | |||
bc9b85e23b | |||
bbeff69a10 | |||
8293415fbd | |||
3c3fe48672 | |||
f8c9d7bf10 | |||
8ad7fd5fed |
2
.gitignore
vendored
@ -1,5 +1,7 @@
|
||||
dist/
|
||||
.sass-cache/
|
||||
.jekyll-metadata
|
||||
.jekyll-cache
|
||||
.DS_Store
|
||||
Gemfile.lock
|
||||
*.gem
|
||||
|
@ -1,28 +1,19 @@
|
||||
image: ruby:2.4.2
|
||||
|
||||
stages:
|
||||
- build
|
||||
- deploy
|
||||
|
||||
build:
|
||||
stage: build
|
||||
before_script:
|
||||
- gem install jekyll
|
||||
script:
|
||||
- jekyll build -d public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
variables:
|
||||
GIT_DEPTH: 1
|
||||
|
||||
deploy:
|
||||
|
||||
pages:
|
||||
image: jekyll/jekyll:4
|
||||
stage: deploy
|
||||
before_script:
|
||||
- gem install jekyll
|
||||
script:
|
||||
- jekyll build -d public
|
||||
- ./bin/deploy
|
||||
- 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:
|
||||
- tags
|
||||
- master
|
||||
|
@ -1,5 +1,7 @@
|
||||
# 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
|
||||
@ -19,23 +21,24 @@ 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.4.2
|
||||
$ rvm install 2.6.5
|
||||
```
|
||||
|
||||
Select that version and then create an isolated [gemset](https://rvm.io/gemsets/basics) with:
|
||||
|
||||
```bash
|
||||
$ rvm use 2.4.2
|
||||
$ rvm use 2.6.5
|
||||
$ rvm gemset create autonomic
|
||||
$ rvm gemset use autonomic
|
||||
```
|
||||
|
||||
# Install Dependencies
|
||||
|
||||
Then you can get your Ruby dependencies installed with:
|
||||
Then you can install your Ruby dependencies with:
|
||||
|
||||
``` bash
|
||||
$ gem install jekyll bundler
|
||||
$ bundle install
|
||||
```
|
||||
|
||||
# Serve Website
|
||||
@ -48,14 +51,14 @@ $ make devserver
|
||||
|
||||
# Editing Content
|
||||
|
||||
You can edit content in the `.md` files under `src` and `src/_posts`.
|
||||
Edit content in the `.md` files under `src` and `src/_posts`.
|
||||
|
||||
# Manage Gemset
|
||||
# Next time
|
||||
|
||||
When you're hacking later on (or in a new shell), you'll need to run:
|
||||
|
||||
``` bash
|
||||
$ rvm use 2.4.2
|
||||
$ rvm use 2.6.5
|
||||
$ rvm gemset use autonomic
|
||||
```
|
||||
|
||||
|
48
README.md
@ -1,59 +1,29 @@
|
||||
[](https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/commits/master)
|
||||
|
||||
# autonomic-cooperative.gitlab.io
|
||||
# autonomic.zone
|
||||
|
||||
A [Jekyll] based site for the Autonomic Cooperative.
|
||||
A [Jekyll] based site for the Autonomic Cooperative. The site is based on the [spectral-jekyll-theme] template.
|
||||
|
||||
The template is based on the [spectral-jekyll-theme].
|
||||
|
||||
We use [autonomic.zone] for production and [autonomic-cooperative.gitlab.io] for staging.
|
||||
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/
|
||||
|
||||
# Contribute
|
||||
# Make a change
|
||||
|
||||
Please see [CONTRIBUTING.md] for the juicy details.
|
||||
|
||||
[CONTRIBUTING.md]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/blob/master/CONTRIBUTING.md
|
||||
|
||||
# Make A New Release
|
||||
|
||||
Please add a new [change log] entry. This helps us track released changes easily.
|
||||
|
||||
[change log]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/blob/master/CHANGELOG.md
|
||||
|
||||
Then, [tag a new commit] and send it upstream with:
|
||||
|
||||
[tag a new commit]: https://git-scm.com/book/en/v2/Git-Basics-Tagging
|
||||
[semantic versioning]: http://semver.org/
|
||||
|
||||
```bash
|
||||
$ COMMIT=$(git rev-parse HEAD)
|
||||
$ TAG=6.6.6 # enter your new tag
|
||||
$ git tag -a $TAG $COMMIT
|
||||
$ git push upstream master --tags
|
||||
```
|
||||
|
||||
You can also use the [Gitlab tags UI] for this.
|
||||
|
||||
[Gitlab tags UI]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/tags
|
||||
|
||||
Our [deploy] CI stage will push the new site to [the production branch].
|
||||
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
|
||||
[the production branch]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/tree/production
|
||||
|
||||
Watch the [CI/CD pipeline] to see that it builds successfully.
|
||||
|
||||
[CI/CD pipeline]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/pipelines
|
||||
|
||||
Then head over to [fullyautomatedluxuryinfrastructure] and run:
|
||||
|
||||
[fullyautomatedluxuryinfrastructure]: https://gitlab.com/autonomic-cooperative/fullyautomatedluxuryinfrastructure
|
||||
# Contribute
|
||||
|
||||
``` bash
|
||||
$ ansible-playbook orgs/autonomic/gitlabpages.yml
|
||||
```
|
||||
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,5 +1,5 @@
|
||||
title: Autonomic Co-operative
|
||||
email: autonomic@posteo.net
|
||||
email: helo@autonomic.zone
|
||||
description: Sustainability, Transparency, Privacy
|
||||
baseurl: ""
|
||||
url: ""
|
||||
@ -10,7 +10,7 @@ sass:
|
||||
featured-image-source:
|
||||
500px_url:
|
||||
github_url:
|
||||
gitlab_url: https://gitlab.com/autonomic-cooperative
|
||||
mastodon_url: https://sunbeam.city/@autonomic
|
||||
twitter_url: https://twitter.com/autonomiccoop
|
||||
markdown: kramdown
|
||||
permalink: pretty
|
||||
|
@ -10,6 +10,6 @@ Gem::Specification.new do |spec|
|
||||
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", "~> 3.3"
|
||||
spec.add_development_dependency "bundler", "~> 1.12"
|
||||
spec.add_development_dependency "jekyll", ">= 4"
|
||||
spec.add_development_dependency "bundler", ">= 1.12"
|
||||
end
|
||||
|
26
bin/deploy
@ -1,26 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
GITUSERNAME="autonomicgitlabci"
|
||||
GITUSEREMAIL="autonomicgitlabci@nowhere.com"
|
||||
DEPLOYSCRIPT="https://github.com/X1011/git-directory-deploy/raw/master/deploy.sh"
|
||||
|
||||
export GIT_DEPLOY_DIR="public"
|
||||
export GIT_DEPLOY_BRANCH="production"
|
||||
export GIT_DEPLOY_REPO="git@gitlab.com:autonomic-cooperative/autonomic-cooperative.gitlab.io.git"
|
||||
|
||||
apt-get update -y
|
||||
apt-get install -yqq wget openssh-client
|
||||
|
||||
wget $DEPLOYSCRIPT && chmod +x deploy.sh
|
||||
|
||||
git config --global user.email $GITUSEREMAIL
|
||||
git config --global user.name $GITUSERNAME
|
||||
|
||||
mkdir -p ~/.ssh
|
||||
eval "$(ssh-agent -s)"
|
||||
ssh-add <(echo "$SSH_PRIVATE_KEY")
|
||||
echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
|
||||
|
||||
./deploy.sh -m "Git tag: $(git describe --exact-match HEAD)"
|
||||
|
||||
rm -Rfv .ssh
|
@ -1,14 +0,0 @@
|
||||
<section id="two" class="wrapper alt style2">
|
||||
|
||||
{% for post in site.categories.values %}
|
||||
|
||||
<section class="spotlight">
|
||||
<div class="image">{% if post.image %}<img src="{% if site.featured-image-source %}{{ post.image | prepend: site.featured-image-source | absolute_url }}{% else %}{{ "" | absolute_url }}/assets/images/{{ post.image }}{% endif %}" alt="" />{% endif %}</div>
|
||||
<div class="content">
|
||||
<h2><a href="{{ post.url | relative_url }}" class="link">{{ post.title }}</a></h2>
|
||||
<p>{{ post.description }}</p>
|
||||
</div>
|
||||
</section>
|
||||
{% endfor %}
|
||||
|
||||
</section>
|
@ -1,12 +1,13 @@
|
||||
<a class="named-anchor" name="contact"></a>
|
||||
<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:autonomic-coop@posteo.net">autonomic-coop@posteo.net</a></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>
|
||||
|
@ -12,15 +12,21 @@
|
||||
</header>
|
||||
<ul class="icons major icons--flex">
|
||||
<li>
|
||||
<span class="icon fa-leaf major style1"></span>
|
||||
<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 fa-eye major style1"></span>
|
||||
<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 fa-lock major style1"></span>
|
||||
<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>
|
||||
|
@ -1,14 +1,7 @@
|
||||
<!-- 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 -->
|
||||
<!-- 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,33 +1,50 @@
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<ul class="icons">
|
||||
{% if site.twitter_url %}
|
||||
<li><a href="{{ site.twitter_url }}" class="icon fa-twitter" target="_blank"><span class="label">Twitter</span></a></li>
|
||||
{% endif %} {% if site.500px_url %}
|
||||
<li><a href="{{ site.500px_url }}" class="icon fa-500px" target="_blank"><span class="label">500px</span></a></li>
|
||||
{% endif %} {% if site.gitlab_url %}
|
||||
<li><a href="{{ site.gitlab_url }}" class="icon fa-gitlab" target="_blank"><span class="label">GitLab</span></a></li>
|
||||
{% endif %} {% if site.github_url %}
|
||||
<li><a href="{{ site.github_url }}" class="icon fa-github" target="_blank"><span class="label">GitHub</span></a></li>
|
||||
{% endif %}
|
||||
<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>
|
||||
<ul class="copyright">
|
||||
<li class="icon fa-creative-commons"> {{ site.title }}</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="{{ "/assets/js/jquery.min.js" | absolute_url }}"></script>
|
||||
<script src="{{ "/assets/js/jquery.scrollex.min.js" | absolute_url }}"></script>
|
||||
<script src="{{ "/assets/js/jquery.scrolly.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="//cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||||
<!--[if lte IE 8]><script src="{{ "/assets/js/ie/respond.min.js" | absolute_url }}"></script><![endif]-->
|
||||
<script src="{{ "/assets/js/main.js" | absolute_url }}"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<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,11 +1,12 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ site.title }}</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="shortcut icon" href="{{ "/assets/images/favicon.ico" | relative_url }}" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!--[if lte IE 8]><script src="{{ "/assets/js/ie/html5shiv.js" | relative_url }}"></script><![endif]-->
|
||||
<link rel="stylesheet" href="{{ "/assets/styles/main.css" | relative_url }}" />
|
||||
<!--[if lte IE 8]><link rel="stylesheet" href="{{ "/assets/css/ie8.css" | relative_url }}" /><![endif]-->
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="{{ "/assets/css/ie9.css" | relative_url }}" /><![endif]-->
|
||||
<!-- hi -->
|
||||
|
||||
{% 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,20 +1,21 @@
|
||||
<div id="page-wrapper">
|
||||
<header id="header" {% if page.layout == 'default' %} class="alt" {% endif %}>
|
||||
<h1><a href="{{ "/" | absolute_url }}">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="{{ "/" | relative_url }}">Home</a></li>
|
||||
<li><a href="{{ "/#core-values" | relative_url }}">Our Core Values</a></li>
|
||||
<li><a href="{{ "/blog" | relative_url }}">Blog</a></li>
|
||||
<li><a href="{{ "/#services" | relative_url }}">Services We Offer</a></li>
|
||||
<li><a href="{{ "/#contact" | relative_url }}">Get In Touch</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<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">
|
||||
|
5
src/_includes/membership-footer.html
Normal file
@ -0,0 +1,5 @@
|
||||
<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>
|
@ -4,53 +4,85 @@
|
||||
<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.
|
||||
This isn't an exhaustive list - if you don't see what you need, please contact us anyway.
|
||||
</p>
|
||||
</header>
|
||||
<ul class="features">
|
||||
<li class="icon fa-paper-plane-o">
|
||||
<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>Wordpress websites</h3>
|
||||
<p>
|
||||
We will build and host your website, using Wordpress, which is free software and very user-friendly so you can add and edit your own content if you want to.
|
||||
</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="icon fa-rocket2">
|
||||
<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>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>
|
||||
</div>
|
||||
</li>
|
||||
<li class="icon fa-cloud-o">
|
||||
<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://sandstorm.io/">Sandstorm</a> is a personal "cloud
|
||||
in a box" , designed with the upmost security in mind. It allows you to
|
||||
<a href="https://cloudron.io/">Cloudron</a> is a personal "cloud
|
||||
in a box" , designed with the utmost security in mind. It allows you to
|
||||
deploy apps for file-storage, collaborative document editing,
|
||||
calendars, to-do lists and much more.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="icon fa-headphones">
|
||||
<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="icon fa-comments-o">
|
||||
<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="icon fa-map-o">
|
||||
<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
|
||||
@ -58,21 +90,28 @@
|
||||
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="icon fa-code">
|
||||
<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 free software solution. Let
|
||||
us guide you through the full development cycle to deliver your bespoke solution.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="icon fa-lock">
|
||||
<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.
|
||||
structured training tailored to your threat model.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -1,13 +1,11 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<html lang="en">
|
||||
{% include head.html %}
|
||||
<body class="landing">
|
||||
{% include header.html %}
|
||||
{% include banner.html %}
|
||||
{% include core-values.html %}
|
||||
{% include blog.html %}
|
||||
{% include services.html %}
|
||||
{% include contact.html %}
|
||||
{% include footer.html %}
|
||||
{% include foot-scripts.html %}
|
||||
</body>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<html lang="en">
|
||||
{% include head.html %}
|
||||
|
||||
<body>
|
||||
@ -7,12 +7,11 @@
|
||||
|
||||
<!-- Main -->
|
||||
<article id="main">
|
||||
<header>
|
||||
<header
|
||||
{% if page.image %}
|
||||
<div
|
||||
class="header-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 %}');"></div>
|
||||
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>
|
||||
|
@ -4,7 +4,7 @@
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
-->
|
||||
<html>
|
||||
<html lang="en">
|
||||
|
||||
{% include head.html %}
|
||||
|
||||
@ -14,18 +14,17 @@
|
||||
|
||||
<!-- Main -->
|
||||
<article id="main">
|
||||
<header>
|
||||
<header
|
||||
{% if page.image %}
|
||||
<div
|
||||
class="header-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 %}');"></div>
|
||||
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">
|
||||
<div class="inner inner--text">
|
||||
|
||||
{{ content }}
|
||||
|
||||
|
@ -1,17 +1,16 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<html lang="en">
|
||||
{% include head.html %}
|
||||
|
||||
<body>
|
||||
{% include header.html %}
|
||||
|
||||
<div id="main">
|
||||
<header>
|
||||
<header
|
||||
{% if page.image %}
|
||||
<div
|
||||
class="header-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 %}');"></div>
|
||||
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>
|
||||
@ -35,6 +34,7 @@
|
||||
{{ item.title }}
|
||||
{% if item.layout %}</a>{% endif %}
|
||||
</h2>
|
||||
<p class="h5">{{ item.date | date: '%B %d, %Y' }}</p>
|
||||
<p>{{ item.description }}</p>
|
||||
</div>
|
||||
</section>
|
||||
|
@ -1,8 +1,8 @@
|
||||
---
|
||||
layout: post
|
||||
title: Our Founding Principles
|
||||
description: Autonomic Co-operative And Our Core Values.
|
||||
image: pic01.jpg
|
||||
description: Autonomic Co-operative And Our Core Values
|
||||
image: 2016-09-23-thinkpad-keyboard.jpg
|
||||
category: values
|
||||
date: 2017-10-03
|
||||
---
|
||||
|
136
src/_posts/2019-08-30-civicrm-mailing-validation.md
Normal file
@ -0,0 +1,136 @@
|
||||
---
|
||||
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: 668 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
BIN
src/assets/images/2019-08-30_civicrm_validation.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
src/assets/images/2019-08-30_civicrm_validation_header.jpg
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
src/assets/images/CoTech-white-logo.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
src/assets/images/Member-of-CoTech-logo-200.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
@ -1,265 +0,0 @@
|
||||
<!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>
|
@ -1,7 +0,0 @@
|
||||
<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>
|
8
src/assets/js/ie/html5shiv.js
vendored
@ -1,8 +0,0 @@
|
||||
/*
|
||||
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);
|
6
src/assets/js/ie/respond.min.js
vendored
@ -1,6 +0,0 @@
|
||||
/*! 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);
|
2
src/assets/js/jquery-3.4.1.min.js
vendored
Normal file
5
src/assets/js/jquery.min.js
vendored
2
src/assets/js/jquery.scrolly.min.js
vendored
@ -1,2 +0,0 @@
|
||||
/* 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);
|
@ -5,216 +5,186 @@
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
skel
|
||||
.breakpoints({
|
||||
xlarge: '(max-width: 1680px)',
|
||||
large: '(max-width: 1280px)',
|
||||
medium: '(max-width: 980px)',
|
||||
small: '(max-width: 736px)',
|
||||
xsmall: '(max-width: 480px)'
|
||||
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');
|
||||
$body = $("body"),
|
||||
$wrapper = $("#page-wrapper"),
|
||||
$banner = $("#banner"),
|
||||
$header = $(".header");
|
||||
|
||||
// Disable animations/transitions until the page has loaded.
|
||||
$body.addClass('is-loading');
|
||||
$body.addClass("is-loading");
|
||||
|
||||
$window.on('load', function() {
|
||||
$window.on("load", function() {
|
||||
window.setTimeout(function() {
|
||||
$body.removeClass('is-loading');
|
||||
$body.removeClass("is-loading");
|
||||
}, 100);
|
||||
});
|
||||
|
||||
// Mobile?
|
||||
if (skel.vars.mobile)
|
||||
$body.addClass('is-mobile');
|
||||
else
|
||||
if (skel.vars.mobile) {
|
||||
$body.addClass("is-mobile");
|
||||
} else {
|
||||
skel
|
||||
.on('-medium !medium', function() {
|
||||
$body.removeClass('is-mobile');
|
||||
.on("-medium !medium", function() {
|
||||
$body.removeClass("is-mobile");
|
||||
})
|
||||
.on('+medium', function() {
|
||||
$body.addClass('is-mobile');
|
||||
.on("+medium", function() {
|
||||
$body.addClass("is-mobile");
|
||||
});
|
||||
}
|
||||
|
||||
// Fix: Placeholder polyfill.
|
||||
$('form').placeholder();
|
||||
$("form").placeholder();
|
||||
|
||||
// Prioritize "important" elements on medium.
|
||||
skel.on('+medium -medium', function() {
|
||||
skel.on("+medium -medium", function() {
|
||||
$.prioritize(
|
||||
'.important\\28 medium\\29',
|
||||
skel.breakpoint('medium').active
|
||||
".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 (skel.vars.IEVersion < 9) $header.removeClass("alt");
|
||||
|
||||
if ($banner.length > 0 &&
|
||||
$header.hasClass('alt')) {
|
||||
|
||||
$window.on('resize', function() {
|
||||
$window.trigger('scroll');
|
||||
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');
|
||||
$header.removeClass("alt");
|
||||
},
|
||||
enter: function() {
|
||||
$header.addClass('alt');
|
||||
$header.addClass("alt");
|
||||
},
|
||||
leave: function() {
|
||||
$header.removeClass('alt');
|
||||
$header.removeClass("alt");
|
||||
}
|
||||
});
|
||||
|
||||
// Particles
|
||||
if ($(window).width() > 980) {
|
||||
particlesJS('banner', {
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 65,
|
||||
"density": {
|
||||
"enable": false,
|
||||
"value_area": 800
|
||||
particlesJS("banner", {
|
||||
particles: {
|
||||
number: {
|
||||
value: 65,
|
||||
density: {
|
||||
enable: false,
|
||||
value_area: 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#f99081"
|
||||
color: {
|
||||
value: "#f99081"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
shape: {
|
||||
type: "circle",
|
||||
stroke: {
|
||||
width: 0,
|
||||
color: "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
polygon: {
|
||||
nb_sides: 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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"
|
||||
interactivity: {
|
||||
detect_on: "canvas",
|
||||
events: {
|
||||
onhover: {
|
||||
enable: true,
|
||||
mode: "grab"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": true,
|
||||
"mode": "push"
|
||||
onclick: {
|
||||
enable: true,
|
||||
mode: "push"
|
||||
},
|
||||
"resize": true
|
||||
resize: true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 200,
|
||||
"line_linked": {
|
||||
"opacity": 0.8
|
||||
modes: {
|
||||
grab: {
|
||||
distance: 200,
|
||||
line_linked: {
|
||||
opacity: 0.8
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 400,
|
||||
"size": 40,
|
||||
"duration": 2,
|
||||
"opacity": 8,
|
||||
"speed": 3
|
||||
bubble: {
|
||||
distance: 400,
|
||||
size: 40,
|
||||
duration: 2,
|
||||
opacity: 8,
|
||||
speed: 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 200,
|
||||
"duration": 0.4
|
||||
repulse: {
|
||||
distance: 200,
|
||||
duration: 0.4
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 2
|
||||
push: {
|
||||
particles_nb: 2
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
remove: {
|
||||
particles_nb: 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true
|
||||
retina_detect: true
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
|
9
src/assets/js/particles.min.js
vendored
Normal file
@ -1,301 +1,5 @@
|
||||
(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.
|
||||
|
@ -11,54 +11,183 @@ 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
|
||||
fG9YVaQqGxeUSQ==
|
||||
=OH/1
|
||||
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
|
||||
AhF2loFrCEnlZw==
|
||||
=u0eg
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
@ -19,23 +19,10 @@ body {
|
||||
body, input, select, textarea {
|
||||
color: _palette(fg);
|
||||
font-family: _font(family);
|
||||
font-size: 15pt;
|
||||
font-size: 18px;
|
||||
font-weight: _font(weight);
|
||||
letter-spacing: _size(letter-spacing);
|
||||
line-height: 1.65em;
|
||||
|
||||
@include breakpoint(xlarge) {
|
||||
font-size: 13pt;
|
||||
}
|
||||
|
||||
@include breakpoint(large) {
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
font-size: 11pt;
|
||||
letter-spacing: _size(letter-spacing) * 0.5;
|
||||
}
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
a {
|
||||
@ -107,6 +94,7 @@ h4 {
|
||||
h5 {
|
||||
font-size: 0.8em;
|
||||
line-height: 1.5em;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.h6,
|
||||
|
@ -22,50 +22,26 @@
|
||||
|
||||
/* Icon */
|
||||
|
||||
.icon {
|
||||
@include icon;
|
||||
border-bottom: none;
|
||||
position: relative;
|
||||
.icon--style1 { fill: _palette(bg); }
|
||||
.icon--style2 { fill: _palette(accent2, bg); }
|
||||
.icon--style3 { fill: _palette(accent3, bg); }
|
||||
.icon--style4 { fill: _palette(accent4, bg); }
|
||||
|
||||
> .label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.major {
|
||||
@include vendor('transform', 'rotate(-45deg)');
|
||||
.icon--diamond {
|
||||
transform: rotate(-45deg);
|
||||
border-radius: 3px;
|
||||
border: solid 2px _palette(border);
|
||||
display: inline-block;
|
||||
font-size: 1.35em;
|
||||
height: calc(3em + 2px);
|
||||
line-height: 3em;
|
||||
text-align: center;
|
||||
width: calc(3em + 2px);
|
||||
border: 2px solid #dfdfdf;
|
||||
box-sizing: border-box;
|
||||
height: 5rem;
|
||||
width: 5rem;
|
||||
|
||||
&:before {
|
||||
@include vendor('transform', 'rotate(45deg)');
|
||||
display: inline-block;
|
||||
font-size: 1.5em;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
font-size: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
&.style1 {
|
||||
color: _palette(bg);
|
||||
}
|
||||
|
||||
&.style2 {
|
||||
color: _palette(accent2, bg);
|
||||
}
|
||||
|
||||
&.style3 {
|
||||
color: _palette(accent3, bg);
|
||||
}
|
||||
|
||||
&.style4 {
|
||||
color: _palette(accent4, bg);
|
||||
}
|
||||
.icon--diamond svg {
|
||||
margin: 1rem;
|
||||
width: 2.25rem;
|
||||
transform: rotate(45deg);
|
||||
}
|
@ -2,17 +2,27 @@
|
||||
/* Features */
|
||||
|
||||
.features {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
@include vendor('justify-content', 'center');
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
li {
|
||||
@include padding(4em, 4em, (0,0,0,2em));
|
||||
display: block;
|
||||
position: relative;
|
||||
.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%;
|
||||
|
||||
@ -24,15 +34,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
color: _palette(accent1, bg);
|
||||
position: absolute;
|
||||
left: 1.75em;
|
||||
top: 2.75em;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
&:nth-child(1) {
|
||||
border-top-left-radius: 3px;
|
||||
}
|
||||
@ -72,4 +73,3 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,100 +1,37 @@
|
||||
|
||||
/* Header */
|
||||
|
||||
#header {
|
||||
@include vendor('transition', 'background-color #{_duration(transitions)} ease');
|
||||
background: _palette(bg);
|
||||
height: 3em;
|
||||
left: 0;
|
||||
line-height: 3em;
|
||||
.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);
|
||||
|
||||
h1 {
|
||||
@include vendor('transition', 'opacity #{_duration(transitions)} ease');
|
||||
height: inherit;
|
||||
left: 1.25em;
|
||||
line-height: inherit;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
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;
|
||||
|
||||
a {
|
||||
border: 0;
|
||||
display: block;
|
||||
height: inherit;
|
||||
line-height: inherit;
|
||||
|
||||
@include breakpoint(small) {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nav {
|
||||
height: inherit;
|
||||
line-height: inherit;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
|
||||
> ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
white-space: nowrap;
|
||||
|
||||
> li {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
|
||||
> a {
|
||||
border: 0;
|
||||
color: _palette(fg-bold);
|
||||
display: block;
|
||||
font-size: 0.8em;
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
padding: 0 1.5em;
|
||||
text-transform: uppercase;
|
||||
|
||||
&.menuToggle {
|
||||
outline: 0;
|
||||
position: relative;
|
||||
|
||||
&:after {
|
||||
background-image: url('images/bars.svg');
|
||||
background-position: right center;
|
||||
background-repeat: no-repeat;
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 3.75em;
|
||||
vertical-align: top;
|
||||
width: 2em;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
padding: 0 1.5em;
|
||||
|
||||
span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
padding: 0 0 0 1.5em;
|
||||
margin: 0 auto;
|
||||
text-align: center
|
||||
}
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.alt {
|
||||
.header.alt {
|
||||
background: transparent;
|
||||
|
||||
h1 {
|
||||
@ -102,4 +39,48 @@
|
||||
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;
|
||||
}
|
||||
}
|
73
src/assets/styles/components/_highlighting.scss
Normal file
@ -0,0 +1,73 @@
|
||||
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 */
|
||||
}
|
@ -20,85 +20,3 @@
|
||||
}
|
||||
}
|
||||
|
||||
#menu {
|
||||
display:none;
|
||||
@include vendor('transform', 'translateX(20em)');
|
||||
@include vendor('transition', 'transform #{_duration(menu)} ease');
|
||||
-webkit-overflow-scrolling: touch;
|
||||
background: _palette(accent1, bg);
|
||||
color: _palette(accent1, fg-bold);
|
||||
height: 100%;
|
||||
max-width: 80%;
|
||||
overflow-y: auto;
|
||||
padding: 3em 2em;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 20em;
|
||||
z-index: _misc(z-index-base) + 2;
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
|
||||
> li {
|
||||
border-top: solid 1px _palette(accent1, border);
|
||||
margin: 0.5em 0 0 0;
|
||||
padding: 0.5em 0 0 0;
|
||||
|
||||
&:first-child {
|
||||
border-top: 0 !important;
|
||||
margin-top: 0 !important;
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
> a {
|
||||
border: 0;
|
||||
color: inherit;
|
||||
display: block;
|
||||
font-size: 0.8em;
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
outline: 0;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
|
||||
@include breakpoint(small) {
|
||||
line-height: 3em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.close {
|
||||
background-image: url('images/close.svg');
|
||||
background-position: 4.85em 1em;
|
||||
background-repeat: no-repeat;
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 3em;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
vertical-align: middle;
|
||||
width: 7em;
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
padding: 3em 1.5em;
|
||||
}
|
||||
}
|
||||
|
||||
body.is-menu-visible {
|
||||
#page-wrapper {
|
||||
opacity: 0.35;
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
#menu {
|
||||
@include vendor('transform', 'translateX(0)');
|
||||
}
|
||||
}
|
@ -206,10 +206,22 @@
|
||||
}
|
||||
}
|
||||
|
||||
> .inner--text {
|
||||
max-width: 45rem;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&.compressed {
|
||||
padding: 0.5em 0 0;
|
||||
|
||||
img {
|
||||
max-width: 150px;
|
||||
}
|
||||
}
|
||||
|
||||
&.style1 {
|
||||
@include wrapper(accent1);
|
||||
}
|
||||
|
@ -1,117 +0,0 @@
|
||||
---
|
||||
---
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
@import 'libs/skel';
|
||||
|
||||
/*
|
||||
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;
|
||||
|
||||
&:before {
|
||||
font-size: 3em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Form */
|
||||
|
||||
label {
|
||||
color: _palette(accent2, fg-bold);
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select,
|
||||
textarea {
|
||||
border: solid 1px _palette(accent2, border);
|
||||
}
|
||||
|
||||
/* Button */
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
border: solid 2px _palette(accent2, border);
|
||||
|
||||
&.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');
|
||||
|
||||
&:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Banner */
|
||||
|
||||
#banner {
|
||||
.more {
|
||||
height: 4em;
|
||||
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Main */
|
||||
|
||||
#main {
|
||||
> header {
|
||||
-ms-behavior: url('assets/js/ie/backgroundsize.min.htc');
|
||||
|
||||
&:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,136 +0,0 @@
|
||||
---
|
||||
---
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
@import 'libs/skel';
|
||||
|
||||
/*
|
||||
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;
|
||||
|
||||
.image {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.content {
|
||||
@include padding(4em, 4em);
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
&:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
/* Features */
|
||||
|
||||
.features {
|
||||
display: block;
|
||||
|
||||
li {
|
||||
float: left;
|
||||
}
|
||||
|
||||
&: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;
|
||||
|
||||
&:before {
|
||||
background: #000000;
|
||||
content: '';
|
||||
height: 100%;
|
||||
left: 0;
|
||||
opacity: 0.5;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.inner {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Banner */
|
||||
|
||||
#banner {
|
||||
@include padding(14em, 0);
|
||||
height: auto;
|
||||
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* CTA */
|
||||
|
||||
#cta {
|
||||
.inner {
|
||||
header {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.actions {
|
||||
float: left;
|
||||
}
|
||||
|
||||
&: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;
|
||||
|
||||
&:before {
|
||||
background: #000000;
|
||||
content: '';
|
||||
height: 100%;
|
||||
left: 0;
|
||||
opacity: 0.5;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
> * {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
// Spinning Icons
|
||||
// --------------------------
|
||||
|
||||
.#{$fa-css-prefix}-spin {
|
||||
-webkit-animation: fa-spin 2s infinite linear;
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pulse {
|
||||
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@-webkit-keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-border {
|
||||
padding: .2em .25em .15em;
|
||||
border: solid .08em $fa-border-color;
|
||||
border-radius: .1em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pull-left { float: left; }
|
||||
.#{$fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.#{$fa-css-prefix} {
|
||||
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
||||
|
||||
/* Deprecated as of 4.4.0 */
|
||||
.pull-right { float: right; }
|
||||
.pull-left { float: left; }
|
||||
|
||||
.#{$fa-css-prefix} {
|
||||
&.pull-left { margin-right: .3em; }
|
||||
&.pull-right { margin-left: .3em; }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// Base Class Definition
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix} {
|
||||
display: inline-block;
|
||||
font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
|
||||
font-size: inherit; // can't have font-size inherit on line above, so need to override
|
||||
text-rendering: auto; // optimizelegibility throws things off #1094
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
// Fixed Width Icons
|
||||
// -------------------------
|
||||
.#{$fa-css-prefix}-fw {
|
||||
width: (18em / 14);
|
||||
text-align: center;
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
// Icon Sizes
|
||||
// -------------------------
|
||||
|
||||
/* makes the font 33% larger relative to the icon container */
|
||||
.#{$fa-css-prefix}-lg {
|
||||
font-size: (4em / 3);
|
||||
line-height: (3em / 4);
|
||||
vertical-align: -15%;
|
||||
}
|
||||
.#{$fa-css-prefix}-2x { font-size: 2em; }
|
||||
.#{$fa-css-prefix}-3x { font-size: 3em; }
|
||||
.#{$fa-css-prefix}-4x { font-size: 4em; }
|
||||
.#{$fa-css-prefix}-5x { font-size: 5em; }
|
@ -1,19 +0,0 @@
|
||||
// List Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-ul {
|
||||
padding-left: 0;
|
||||
margin-left: $fa-li-width;
|
||||
list-style-type: none;
|
||||
> li { position: relative; }
|
||||
}
|
||||
.#{$fa-css-prefix}-li {
|
||||
position: absolute;
|
||||
left: -$fa-li-width;
|
||||
width: $fa-li-width;
|
||||
top: (2em / 14);
|
||||
text-align: center;
|
||||
&.#{$fa-css-prefix}-lg {
|
||||
left: -$fa-li-width + (4em / 14);
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
// Mixins
|
||||
// --------------------------
|
||||
|
||||
@mixin fa-icon() {
|
||||
display: inline-block;
|
||||
font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
|
||||
font-size: inherit; // can't have font-size inherit on line above, so need to override
|
||||
text-rendering: auto; // optimizelegibility throws things off #1094
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
}
|
||||
|
||||
@mixin fa-icon-rotate($degrees, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
|
||||
-webkit-transform: rotate($degrees);
|
||||
-ms-transform: rotate($degrees);
|
||||
transform: rotate($degrees);
|
||||
}
|
||||
|
||||
@mixin fa-icon-flip($horiz, $vert, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
|
||||
-webkit-transform: scale($horiz, $vert);
|
||||
-ms-transform: scale($horiz, $vert);
|
||||
transform: scale($horiz, $vert);
|
||||
}
|
||||
|
||||
|
||||
// Only display content to screen readers. A la Bootstrap 4.
|
||||
//
|
||||
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||
|
||||
@mixin sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0,0,0,0);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||
//
|
||||
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||
//
|
||||
// Credit: HTML5 Boilerplate
|
||||
|
||||
@mixin sr-only-focusable {
|
||||
&:active,
|
||||
&:focus {
|
||||
position: static;
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
clip: auto;
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
/* FONT PATH
|
||||
* -------------------------- */
|
||||
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
src: url('#{$fa-font-path}/font-awesome.eot?v=#{$fa-version}');
|
||||
src: url('#{$fa-font-path}/font-awesome.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/font-awesome.woff?v=#{$fa-version}') format('woff'),
|
||||
url('#{$fa-font-path}/font-awesome.ttf?v=#{$fa-version}') format('truetype'),
|
||||
url('#{$fa-font-path}/font-awesome.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
|
||||
// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
// Rotated & Flipped Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
|
||||
.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
|
||||
.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
|
||||
|
||||
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
|
||||
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
|
||||
|
||||
// Hook for IE8-9
|
||||
// -------------------------
|
||||
|
||||
:root .#{$fa-css-prefix}-rotate-90,
|
||||
:root .#{$fa-css-prefix}-rotate-180,
|
||||
:root .#{$fa-css-prefix}-rotate-270,
|
||||
:root .#{$fa-css-prefix}-flip-horizontal,
|
||||
:root .#{$fa-css-prefix}-flip-vertical {
|
||||
filter: none;
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
// Screen Readers
|
||||
// -------------------------
|
||||
|
||||
.sr-only { @include sr-only(); }
|
||||
.sr-only-focusable { @include sr-only-focusable(); }
|
@ -1,20 +0,0 @@
|
||||
// Stacked Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-stack {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.#{$fa-css-prefix}-stack-1x { line-height: inherit; }
|
||||
.#{$fa-css-prefix}-stack-2x { font-size: 2em; }
|
||||
.#{$fa-css-prefix}-inverse { color: $fa-inverse; }
|
@ -1,801 +0,0 @@
|
||||
// Variables
|
||||
// --------------------------
|
||||
|
||||
$fa-font-path: "../fonts" !default;
|
||||
$fa-font-size-base: 14px !default;
|
||||
$fa-line-height-base: 1 !default;
|
||||
//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly
|
||||
$fa-css-prefix: fa !default;
|
||||
$fa-version: "4.7.0" !default;
|
||||
$fa-border-color: #eee !default;
|
||||
$fa-inverse: #fff !default;
|
||||
$fa-li-width: (30em / 14) !default;
|
||||
|
||||
$fa-var-cloud-o: "\e900";
|
||||
$fa-var-rocket2: "\e905";
|
||||
$fa-var-asterisk: "\f069";
|
||||
$fa-var-plus: "\f067";
|
||||
$fa-var-question: "\f128";
|
||||
$fa-var-minus: "\f068";
|
||||
$fa-var-glass: "\f000";
|
||||
$fa-var-music: "\f001";
|
||||
$fa-var-search: "\f002";
|
||||
$fa-var-envelope-o: "\f003";
|
||||
$fa-var-heart: "\f004";
|
||||
$fa-var-star: "\f005";
|
||||
$fa-var-star-o: "\f006";
|
||||
$fa-var-user: "\f007";
|
||||
$fa-var-film: "\f008";
|
||||
$fa-var-th-large: "\f009";
|
||||
$fa-var-th: "\f00a";
|
||||
$fa-var-th-list: "\f00b";
|
||||
$fa-var-check: "\f00c";
|
||||
$fa-var-close: "\f00d";
|
||||
$fa-var-remove: "\f00d";
|
||||
$fa-var-times: "\f00d";
|
||||
$fa-var-search-plus: "\f00e";
|
||||
$fa-var-search-minus: "\f010";
|
||||
$fa-var-power-off: "\f011";
|
||||
$fa-var-signal: "\f012";
|
||||
$fa-var-cog: "\f013";
|
||||
$fa-var-gear: "\f013";
|
||||
$fa-var-trash-o: "\f014";
|
||||
$fa-var-home: "\f015";
|
||||
$fa-var-file-o: "\f016";
|
||||
$fa-var-clock-o: "\f017";
|
||||
$fa-var-road: "\f018";
|
||||
$fa-var-download: "\f019";
|
||||
$fa-var-arrow-circle-o-down: "\f01a";
|
||||
$fa-var-arrow-circle-o-up: "\f01b";
|
||||
$fa-var-inbox: "\f01c";
|
||||
$fa-var-play-circle-o: "\f01d";
|
||||
$fa-var-repeat: "\f01e";
|
||||
$fa-var-rotate-right: "\f01e";
|
||||
$fa-var-refresh: "\f021";
|
||||
$fa-var-list-alt: "\f022";
|
||||
$fa-var-lock: "\f023";
|
||||
$fa-var-flag: "\f024";
|
||||
$fa-var-headphones: "\f025";
|
||||
$fa-var-volume-off: "\f026";
|
||||
$fa-var-volume-down: "\f027";
|
||||
$fa-var-volume-up: "\f028";
|
||||
$fa-var-qrcode: "\f029";
|
||||
$fa-var-barcode: "\f02a";
|
||||
$fa-var-tag: "\f02b";
|
||||
$fa-var-tags: "\f02c";
|
||||
$fa-var-book: "\f02d";
|
||||
$fa-var-bookmark: "\f02e";
|
||||
$fa-var-print: "\f02f";
|
||||
$fa-var-camera: "\f030";
|
||||
$fa-var-font: "\f031";
|
||||
$fa-var-bold: "\f032";
|
||||
$fa-var-italic: "\f033";
|
||||
$fa-var-text-height: "\f034";
|
||||
$fa-var-text-width: "\f035";
|
||||
$fa-var-align-left: "\f036";
|
||||
$fa-var-align-center: "\f037";
|
||||
$fa-var-align-right: "\f038";
|
||||
$fa-var-align-justify: "\f039";
|
||||
$fa-var-list: "\f03a";
|
||||
$fa-var-dedent: "\f03b";
|
||||
$fa-var-outdent: "\f03b";
|
||||
$fa-var-indent: "\f03c";
|
||||
$fa-var-video-camera: "\f03d";
|
||||
$fa-var-image: "\f03e";
|
||||
$fa-var-photo: "\f03e";
|
||||
$fa-var-picture-o: "\f03e";
|
||||
$fa-var-pencil: "\f040";
|
||||
$fa-var-map-marker: "\f041";
|
||||
$fa-var-adjust: "\f042";
|
||||
$fa-var-tint: "\f043";
|
||||
$fa-var-edit: "\f044";
|
||||
$fa-var-pencil-square-o: "\f044";
|
||||
$fa-var-share-square-o: "\f045";
|
||||
$fa-var-check-square-o: "\f046";
|
||||
$fa-var-arrows: "\f047";
|
||||
$fa-var-step-backward: "\f048";
|
||||
$fa-var-fast-backward: "\f049";
|
||||
$fa-var-backward: "\f04a";
|
||||
$fa-var-play: "\f04b";
|
||||
$fa-var-pause: "\f04c";
|
||||
$fa-var-stop: "\f04d";
|
||||
$fa-var-forward: "\f04e";
|
||||
$fa-var-fast-forward: "\f050";
|
||||
$fa-var-step-forward: "\f051";
|
||||
$fa-var-eject: "\f052";
|
||||
$fa-var-chevron-left: "\f053";
|
||||
$fa-var-chevron-right: "\f054";
|
||||
$fa-var-plus-circle: "\f055";
|
||||
$fa-var-minus-circle: "\f056";
|
||||
$fa-var-times-circle: "\f057";
|
||||
$fa-var-check-circle: "\f058";
|
||||
$fa-var-question-circle: "\f059";
|
||||
$fa-var-info-circle: "\f05a";
|
||||
$fa-var-crosshairs: "\f05b";
|
||||
$fa-var-times-circle-o: "\f05c";
|
||||
$fa-var-check-circle-o: "\f05d";
|
||||
$fa-var-ban: "\f05e";
|
||||
$fa-var-arrow-left: "\f060";
|
||||
$fa-var-arrow-right: "\f061";
|
||||
$fa-var-arrow-up: "\f062";
|
||||
$fa-var-arrow-down: "\f063";
|
||||
$fa-var-mail-forward: "\f064";
|
||||
$fa-var-share: "\f064";
|
||||
$fa-var-expand: "\f065";
|
||||
$fa-var-compress: "\f066";
|
||||
$fa-var-exclamation-circle: "\f06a";
|
||||
$fa-var-gift: "\f06b";
|
||||
$fa-var-leaf: "\f06c";
|
||||
$fa-var-fire: "\f06d";
|
||||
$fa-var-eye: "\f06e";
|
||||
$fa-var-eye-slash: "\f070";
|
||||
$fa-var-exclamation-triangle: "\f071";
|
||||
$fa-var-warning: "\f071";
|
||||
$fa-var-plane: "\f072";
|
||||
$fa-var-calendar: "\f073";
|
||||
$fa-var-random: "\f074";
|
||||
$fa-var-comment: "\f075";
|
||||
$fa-var-magnet: "\f076";
|
||||
$fa-var-chevron-up: "\f077";
|
||||
$fa-var-chevron-down: "\f078";
|
||||
$fa-var-retweet: "\f079";
|
||||
$fa-var-shopping-cart: "\f07a";
|
||||
$fa-var-folder: "\f07b";
|
||||
$fa-var-folder-open: "\f07c";
|
||||
$fa-var-arrows-v: "\f07d";
|
||||
$fa-var-arrows-h: "\f07e";
|
||||
$fa-var-bar-chart: "\f080";
|
||||
$fa-var-bar-chart-o: "\f080";
|
||||
$fa-var-twitter-square: "\f081";
|
||||
$fa-var-facebook-square: "\f082";
|
||||
$fa-var-camera-retro: "\f083";
|
||||
$fa-var-key: "\f084";
|
||||
$fa-var-cogs: "\f085";
|
||||
$fa-var-gears: "\f085";
|
||||
$fa-var-comments: "\f086";
|
||||
$fa-var-thumbs-o-up: "\f087";
|
||||
$fa-var-thumbs-o-down: "\f088";
|
||||
$fa-var-star-half: "\f089";
|
||||
$fa-var-heart-o: "\f08a";
|
||||
$fa-var-sign-out: "\f08b";
|
||||
$fa-var-linkedin-square: "\f08c";
|
||||
$fa-var-thumb-tack: "\f08d";
|
||||
$fa-var-external-link: "\f08e";
|
||||
$fa-var-sign-in: "\f090";
|
||||
$fa-var-trophy: "\f091";
|
||||
$fa-var-github-square: "\f092";
|
||||
$fa-var-upload: "\f093";
|
||||
$fa-var-lemon-o: "\f094";
|
||||
$fa-var-phone: "\f095";
|
||||
$fa-var-square-o: "\f096";
|
||||
$fa-var-bookmark-o: "\f097";
|
||||
$fa-var-phone-square: "\f098";
|
||||
$fa-var-twitter: "\f099";
|
||||
$fa-var-facebook: "\f09a";
|
||||
$fa-var-facebook-f: "\f09a";
|
||||
$fa-var-github: "\f09b";
|
||||
$fa-var-unlock: "\f09c";
|
||||
$fa-var-credit-card: "\f09d";
|
||||
$fa-var-feed: "\f09e";
|
||||
$fa-var-rss: "\f09e";
|
||||
$fa-var-hdd-o: "\f0a0";
|
||||
$fa-var-bullhorn: "\f0a1";
|
||||
$fa-var-bell-o: "\f0a2";
|
||||
$fa-var-certificate: "\f0a3";
|
||||
$fa-var-hand-o-right: "\f0a4";
|
||||
$fa-var-hand-o-left: "\f0a5";
|
||||
$fa-var-hand-o-up: "\f0a6";
|
||||
$fa-var-hand-o-down: "\f0a7";
|
||||
$fa-var-arrow-circle-left: "\f0a8";
|
||||
$fa-var-arrow-circle-right: "\f0a9";
|
||||
$fa-var-arrow-circle-up: "\f0aa";
|
||||
$fa-var-arrow-circle-down: "\f0ab";
|
||||
$fa-var-globe: "\f0ac";
|
||||
$fa-var-wrench: "\f0ad";
|
||||
$fa-var-tasks: "\f0ae";
|
||||
$fa-var-filter: "\f0b0";
|
||||
$fa-var-briefcase: "\f0b1";
|
||||
$fa-var-arrows-alt: "\f0b2";
|
||||
$fa-var-group: "\f0c0";
|
||||
$fa-var-users: "\f0c0";
|
||||
$fa-var-chain: "\f0c1";
|
||||
$fa-var-link: "\f0c1";
|
||||
$fa-var-cloud: "\f0c2";
|
||||
$fa-var-flask: "\f0c3";
|
||||
$fa-var-cut: "\f0c4";
|
||||
$fa-var-scissors: "\f0c4";
|
||||
$fa-var-copy: "\f0c5";
|
||||
$fa-var-files-o: "\f0c5";
|
||||
$fa-var-paperclip: "\f0c6";
|
||||
$fa-var-floppy-o: "\f0c7";
|
||||
$fa-var-save: "\f0c7";
|
||||
$fa-var-square: "\f0c8";
|
||||
$fa-var-bars: "\f0c9";
|
||||
$fa-var-navicon: "\f0c9";
|
||||
$fa-var-reorder: "\f0c9";
|
||||
$fa-var-list-ul: "\f0ca";
|
||||
$fa-var-list-ol: "\f0cb";
|
||||
$fa-var-strikethrough: "\f0cc";
|
||||
$fa-var-underline: "\f0cd";
|
||||
$fa-var-table: "\f0ce";
|
||||
$fa-var-magic: "\f0d0";
|
||||
$fa-var-truck: "\f0d1";
|
||||
$fa-var-pinterest: "\f0d2";
|
||||
$fa-var-pinterest-square: "\f0d3";
|
||||
$fa-var-google-plus-square: "\f0d4";
|
||||
$fa-var-google-plus: "\f0d5";
|
||||
$fa-var-money: "\f0d6";
|
||||
$fa-var-caret-down: "\f0d7";
|
||||
$fa-var-caret-up: "\f0d8";
|
||||
$fa-var-caret-left: "\f0d9";
|
||||
$fa-var-caret-right: "\f0da";
|
||||
$fa-var-columns: "\f0db";
|
||||
$fa-var-sort: "\f0dc";
|
||||
$fa-var-unsorted: "\f0dc";
|
||||
$fa-var-sort-desc: "\f0dd";
|
||||
$fa-var-sort-down: "\f0dd";
|
||||
$fa-var-sort-asc: "\f0de";
|
||||
$fa-var-sort-up: "\f0de";
|
||||
$fa-var-envelope: "\f0e0";
|
||||
$fa-var-linkedin: "\f0e1";
|
||||
$fa-var-rotate-left: "\f0e2";
|
||||
$fa-var-undo: "\f0e2";
|
||||
$fa-var-gavel: "\f0e3";
|
||||
$fa-var-legal: "\f0e3";
|
||||
$fa-var-dashboard: "\f0e4";
|
||||
$fa-var-tachometer: "\f0e4";
|
||||
$fa-var-comment-o: "\f0e5";
|
||||
$fa-var-comments-o: "\f0e6";
|
||||
$fa-var-bolt: "\f0e7";
|
||||
$fa-var-flash: "\f0e7";
|
||||
$fa-var-sitemap: "\f0e8";
|
||||
$fa-var-umbrella: "\f0e9";
|
||||
$fa-var-clipboard: "\f0ea";
|
||||
$fa-var-paste: "\f0ea";
|
||||
$fa-var-lightbulb-o: "\f0eb";
|
||||
$fa-var-exchange: "\f0ec";
|
||||
$fa-var-cloud-download: "\f0ed";
|
||||
$fa-var-cloud-upload: "\f0ee";
|
||||
$fa-var-user-md: "\f0f0";
|
||||
$fa-var-stethoscope: "\f0f1";
|
||||
$fa-var-suitcase: "\f0f2";
|
||||
$fa-var-bell: "\f0f3";
|
||||
$fa-var-coffee: "\f0f4";
|
||||
$fa-var-cutlery: "\f0f5";
|
||||
$fa-var-file-text-o: "\f0f6";
|
||||
$fa-var-building-o: "\f0f7";
|
||||
$fa-var-hospital-o: "\f0f8";
|
||||
$fa-var-ambulance: "\f0f9";
|
||||
$fa-var-medkit: "\f0fa";
|
||||
$fa-var-fighter-jet: "\f0fb";
|
||||
$fa-var-beer: "\f0fc";
|
||||
$fa-var-h-square: "\f0fd";
|
||||
$fa-var-plus-square: "\f0fe";
|
||||
$fa-var-angle-double-left: "\f100";
|
||||
$fa-var-angle-double-right: "\f101";
|
||||
$fa-var-angle-double-up: "\f102";
|
||||
$fa-var-angle-double-down: "\f103";
|
||||
$fa-var-angle-left: "\f104";
|
||||
$fa-var-angle-right: "\f105";
|
||||
$fa-var-angle-up: "\f106";
|
||||
$fa-var-angle-down: "\f107";
|
||||
$fa-var-desktop: "\f108";
|
||||
$fa-var-laptop: "\f109";
|
||||
$fa-var-tablet: "\f10a";
|
||||
$fa-var-mobile: "\f10b";
|
||||
$fa-var-mobile-phone: "\f10b";
|
||||
$fa-var-circle-o: "\f10c";
|
||||
$fa-var-quote-left: "\f10d";
|
||||
$fa-var-quote-right: "\f10e";
|
||||
$fa-var-spinner: "\f110";
|
||||
$fa-var-circle: "\f111";
|
||||
$fa-var-mail-reply: "\f112";
|
||||
$fa-var-reply: "\f112";
|
||||
$fa-var-github-alt: "\f113";
|
||||
$fa-var-folder-o: "\f114";
|
||||
$fa-var-folder-open-o: "\f115";
|
||||
$fa-var-smile-o: "\f118";
|
||||
$fa-var-frown-o: "\f119";
|
||||
$fa-var-meh-o: "\f11a";
|
||||
$fa-var-gamepad: "\f11b";
|
||||
$fa-var-keyboard-o: "\f11c";
|
||||
$fa-var-flag-o: "\f11d";
|
||||
$fa-var-flag-checkered: "\f11e";
|
||||
$fa-var-terminal: "\f120";
|
||||
$fa-var-code: "\f121";
|
||||
$fa-var-mail-reply-all: "\f122";
|
||||
$fa-var-reply-all: "\f122";
|
||||
$fa-var-star-half-empty: "\f123";
|
||||
$fa-var-star-half-full: "\f123";
|
||||
$fa-var-star-half-o: "\f123";
|
||||
$fa-var-location-arrow: "\f124";
|
||||
$fa-var-crop: "\f125";
|
||||
$fa-var-code-fork: "\f126";
|
||||
$fa-var-chain-broken: "\f127";
|
||||
$fa-var-unlink: "\f127";
|
||||
$fa-var-info: "\f129";
|
||||
$fa-var-exclamation: "\f12a";
|
||||
$fa-var-superscript: "\f12b";
|
||||
$fa-var-subscript: "\f12c";
|
||||
$fa-var-eraser: "\f12d";
|
||||
$fa-var-puzzle-piece: "\f12e";
|
||||
$fa-var-microphone: "\f130";
|
||||
$fa-var-microphone-slash: "\f131";
|
||||
$fa-var-shield: "\f132";
|
||||
$fa-var-calendar-o: "\f133";
|
||||
$fa-var-fire-extinguisher: "\f134";
|
||||
$fa-var-rocket: "\f135";
|
||||
$fa-var-maxcdn: "\f136";
|
||||
$fa-var-chevron-circle-left: "\f137";
|
||||
$fa-var-chevron-circle-right: "\f138";
|
||||
$fa-var-chevron-circle-up: "\f139";
|
||||
$fa-var-chevron-circle-down: "\f13a";
|
||||
$fa-var-html5: "\f13b";
|
||||
$fa-var-css3: "\f13c";
|
||||
$fa-var-anchor: "\f13d";
|
||||
$fa-var-unlock-alt: "\f13e";
|
||||
$fa-var-bullseye: "\f140";
|
||||
$fa-var-ellipsis-h: "\f141";
|
||||
$fa-var-ellipsis-v: "\f142";
|
||||
$fa-var-rss-square: "\f143";
|
||||
$fa-var-play-circle: "\f144";
|
||||
$fa-var-ticket: "\f145";
|
||||
$fa-var-minus-square: "\f146";
|
||||
$fa-var-minus-square-o: "\f147";
|
||||
$fa-var-level-up: "\f148";
|
||||
$fa-var-level-down: "\f149";
|
||||
$fa-var-check-square: "\f14a";
|
||||
$fa-var-pencil-square: "\f14b";
|
||||
$fa-var-external-link-square: "\f14c";
|
||||
$fa-var-share-square: "\f14d";
|
||||
$fa-var-compass: "\f14e";
|
||||
$fa-var-caret-square-o-down: "\f150";
|
||||
$fa-var-toggle-down: "\f150";
|
||||
$fa-var-caret-square-o-up: "\f151";
|
||||
$fa-var-toggle-up: "\f151";
|
||||
$fa-var-caret-square-o-right: "\f152";
|
||||
$fa-var-toggle-right: "\f152";
|
||||
$fa-var-eur: "\f153";
|
||||
$fa-var-euro: "\f153";
|
||||
$fa-var-gbp: "\f154";
|
||||
$fa-var-dollar: "\f155";
|
||||
$fa-var-usd: "\f155";
|
||||
$fa-var-inr: "\f156";
|
||||
$fa-var-rupee: "\f156";
|
||||
$fa-var-cny: "\f157";
|
||||
$fa-var-jpy: "\f157";
|
||||
$fa-var-rmb: "\f157";
|
||||
$fa-var-yen: "\f157";
|
||||
$fa-var-rouble: "\f158";
|
||||
$fa-var-rub: "\f158";
|
||||
$fa-var-ruble: "\f158";
|
||||
$fa-var-krw: "\f159";
|
||||
$fa-var-won: "\f159";
|
||||
$fa-var-bitcoin: "\f15a";
|
||||
$fa-var-btc: "\f15a";
|
||||
$fa-var-file: "\f15b";
|
||||
$fa-var-file-text: "\f15c";
|
||||
$fa-var-sort-alpha-asc: "\f15d";
|
||||
$fa-var-sort-alpha-desc: "\f15e";
|
||||
$fa-var-sort-amount-asc: "\f160";
|
||||
$fa-var-sort-amount-desc: "\f161";
|
||||
$fa-var-sort-numeric-asc: "\f162";
|
||||
$fa-var-sort-numeric-desc: "\f163";
|
||||
$fa-var-thumbs-up: "\f164";
|
||||
$fa-var-thumbs-down: "\f165";
|
||||
$fa-var-youtube-square: "\f166";
|
||||
$fa-var-youtube: "\f167";
|
||||
$fa-var-xing: "\f168";
|
||||
$fa-var-xing-square: "\f169";
|
||||
$fa-var-youtube-play: "\f16a";
|
||||
$fa-var-dropbox: "\f16b";
|
||||
$fa-var-stack-overflow: "\f16c";
|
||||
$fa-var-instagram: "\f16d";
|
||||
$fa-var-flickr: "\f16e";
|
||||
$fa-var-adn: "\f170";
|
||||
$fa-var-bitbucket: "\f171";
|
||||
$fa-var-bitbucket-square: "\f172";
|
||||
$fa-var-tumblr: "\f173";
|
||||
$fa-var-tumblr-square: "\f174";
|
||||
$fa-var-long-arrow-down: "\f175";
|
||||
$fa-var-long-arrow-up: "\f176";
|
||||
$fa-var-long-arrow-left: "\f177";
|
||||
$fa-var-long-arrow-right: "\f178";
|
||||
$fa-var-apple: "\f179";
|
||||
$fa-var-windows: "\f17a";
|
||||
$fa-var-android: "\f17b";
|
||||
$fa-var-linux: "\f17c";
|
||||
$fa-var-dribbble: "\f17d";
|
||||
$fa-var-skype: "\f17e";
|
||||
$fa-var-foursquare: "\f180";
|
||||
$fa-var-trello: "\f181";
|
||||
$fa-var-female: "\f182";
|
||||
$fa-var-male: "\f183";
|
||||
$fa-var-gittip: "\f184";
|
||||
$fa-var-gratipay: "\f184";
|
||||
$fa-var-sun-o: "\f185";
|
||||
$fa-var-moon-o: "\f186";
|
||||
$fa-var-archive: "\f187";
|
||||
$fa-var-bug: "\f188";
|
||||
$fa-var-vk: "\f189";
|
||||
$fa-var-weibo: "\f18a";
|
||||
$fa-var-renren: "\f18b";
|
||||
$fa-var-pagelines: "\f18c";
|
||||
$fa-var-stack-exchange: "\f18d";
|
||||
$fa-var-arrow-circle-o-right: "\f18e";
|
||||
$fa-var-arrow-circle-o-left: "\f190";
|
||||
$fa-var-caret-square-o-left: "\f191";
|
||||
$fa-var-toggle-left: "\f191";
|
||||
$fa-var-dot-circle-o: "\f192";
|
||||
$fa-var-wheelchair: "\f193";
|
||||
$fa-var-vimeo-square: "\f194";
|
||||
$fa-var-try: "\f195";
|
||||
$fa-var-turkish-lira: "\f195";
|
||||
$fa-var-plus-square-o: "\f196";
|
||||
$fa-var-space-shuttle: "\f197";
|
||||
$fa-var-slack: "\f198";
|
||||
$fa-var-envelope-square: "\f199";
|
||||
$fa-var-wordpress: "\f19a";
|
||||
$fa-var-openid: "\f19b";
|
||||
$fa-var-bank: "\f19c";
|
||||
$fa-var-institution: "\f19c";
|
||||
$fa-var-university: "\f19c";
|
||||
$fa-var-graduation-cap: "\f19d";
|
||||
$fa-var-mortar-board: "\f19d";
|
||||
$fa-var-yahoo: "\f19e";
|
||||
$fa-var-google: "\f1a0";
|
||||
$fa-var-reddit: "\f1a1";
|
||||
$fa-var-reddit-square: "\f1a2";
|
||||
$fa-var-stumbleupon-circle: "\f1a3";
|
||||
$fa-var-stumbleupon: "\f1a4";
|
||||
$fa-var-delicious: "\f1a5";
|
||||
$fa-var-digg: "\f1a6";
|
||||
$fa-var-pied-piper-pp: "\f1a7";
|
||||
$fa-var-pied-piper-alt: "\f1a8";
|
||||
$fa-var-drupal: "\f1a9";
|
||||
$fa-var-joomla: "\f1aa";
|
||||
$fa-var-language: "\f1ab";
|
||||
$fa-var-fax: "\f1ac";
|
||||
$fa-var-building: "\f1ad";
|
||||
$fa-var-child: "\f1ae";
|
||||
$fa-var-paw: "\f1b0";
|
||||
$fa-var-spoon: "\f1b1";
|
||||
$fa-var-cube: "\f1b2";
|
||||
$fa-var-cubes: "\f1b3";
|
||||
$fa-var-behance: "\f1b4";
|
||||
$fa-var-behance-square: "\f1b5";
|
||||
$fa-var-steam: "\f1b6";
|
||||
$fa-var-steam-square: "\f1b7";
|
||||
$fa-var-recycle: "\f1b8";
|
||||
$fa-var-automobile: "\f1b9";
|
||||
$fa-var-car: "\f1b9";
|
||||
$fa-var-cab: "\f1ba";
|
||||
$fa-var-taxi: "\f1ba";
|
||||
$fa-var-tree: "\f1bb";
|
||||
$fa-var-spotify: "\f1bc";
|
||||
$fa-var-deviantart: "\f1bd";
|
||||
$fa-var-soundcloud: "\f1be";
|
||||
$fa-var-database: "\f1c0";
|
||||
$fa-var-file-pdf-o: "\f1c1";
|
||||
$fa-var-file-word-o: "\f1c2";
|
||||
$fa-var-file-excel-o: "\f1c3";
|
||||
$fa-var-file-powerpoint-o: "\f1c4";
|
||||
$fa-var-file-image-o: "\f1c5";
|
||||
$fa-var-file-photo-o: "\f1c5";
|
||||
$fa-var-file-picture-o: "\f1c5";
|
||||
$fa-var-file-archive-o: "\f1c6";
|
||||
$fa-var-file-zip-o: "\f1c6";
|
||||
$fa-var-file-audio-o: "\f1c7";
|
||||
$fa-var-file-sound-o: "\f1c7";
|
||||
$fa-var-file-movie-o: "\f1c8";
|
||||
$fa-var-file-video-o: "\f1c8";
|
||||
$fa-var-file-code-o: "\f1c9";
|
||||
$fa-var-vine: "\f1ca";
|
||||
$fa-var-codepen: "\f1cb";
|
||||
$fa-var-jsfiddle: "\f1cc";
|
||||
$fa-var-life-bouy: "\f1cd";
|
||||
$fa-var-life-buoy: "\f1cd";
|
||||
$fa-var-life-ring: "\f1cd";
|
||||
$fa-var-life-saver: "\f1cd";
|
||||
$fa-var-support: "\f1cd";
|
||||
$fa-var-circle-o-notch: "\f1ce";
|
||||
$fa-var-ra: "\f1d0";
|
||||
$fa-var-rebel: "\f1d0";
|
||||
$fa-var-resistance: "\f1d0";
|
||||
$fa-var-empire: "\f1d1";
|
||||
$fa-var-ge: "\f1d1";
|
||||
$fa-var-git-square: "\f1d2";
|
||||
$fa-var-git: "\f1d3";
|
||||
$fa-var-hacker-news: "\f1d4";
|
||||
$fa-var-y-combinator-square: "\f1d4";
|
||||
$fa-var-yc-square: "\f1d4";
|
||||
$fa-var-tencent-weibo: "\f1d5";
|
||||
$fa-var-qq: "\f1d6";
|
||||
$fa-var-wechat: "\f1d7";
|
||||
$fa-var-weixin: "\f1d7";
|
||||
$fa-var-paper-plane: "\f1d8";
|
||||
$fa-var-send: "\f1d8";
|
||||
$fa-var-paper-plane-o: "\f1d9";
|
||||
$fa-var-send-o: "\f1d9";
|
||||
$fa-var-history: "\f1da";
|
||||
$fa-var-circle-thin: "\f1db";
|
||||
$fa-var-header: "\f1dc";
|
||||
$fa-var-paragraph: "\f1dd";
|
||||
$fa-var-sliders: "\f1de";
|
||||
$fa-var-share-alt: "\f1e0";
|
||||
$fa-var-share-alt-square: "\f1e1";
|
||||
$fa-var-bomb: "\f1e2";
|
||||
$fa-var-futbol-o: "\f1e3";
|
||||
$fa-var-soccer-ball-o: "\f1e3";
|
||||
$fa-var-tty: "\f1e4";
|
||||
$fa-var-binoculars: "\f1e5";
|
||||
$fa-var-plug: "\f1e6";
|
||||
$fa-var-slideshare: "\f1e7";
|
||||
$fa-var-twitch: "\f1e8";
|
||||
$fa-var-yelp: "\f1e9";
|
||||
$fa-var-newspaper-o: "\f1ea";
|
||||
$fa-var-wifi: "\f1eb";
|
||||
$fa-var-calculator: "\f1ec";
|
||||
$fa-var-paypal: "\f1ed";
|
||||
$fa-var-google-wallet: "\f1ee";
|
||||
$fa-var-cc-visa: "\f1f0";
|
||||
$fa-var-cc-mastercard: "\f1f1";
|
||||
$fa-var-cc-discover: "\f1f2";
|
||||
$fa-var-cc-amex: "\f1f3";
|
||||
$fa-var-cc-paypal: "\f1f4";
|
||||
$fa-var-cc-stripe: "\f1f5";
|
||||
$fa-var-bell-slash: "\f1f6";
|
||||
$fa-var-bell-slash-o: "\f1f7";
|
||||
$fa-var-trash: "\f1f8";
|
||||
$fa-var-copyright: "\f1f9";
|
||||
$fa-var-at: "\f1fa";
|
||||
$fa-var-eyedropper: "\f1fb";
|
||||
$fa-var-paint-brush: "\f1fc";
|
||||
$fa-var-birthday-cake: "\f1fd";
|
||||
$fa-var-area-chart: "\f1fe";
|
||||
$fa-var-pie-chart: "\f200";
|
||||
$fa-var-line-chart: "\f201";
|
||||
$fa-var-lastfm: "\f202";
|
||||
$fa-var-lastfm-square: "\f203";
|
||||
$fa-var-toggle-off: "\f204";
|
||||
$fa-var-toggle-on: "\f205";
|
||||
$fa-var-bicycle: "\f206";
|
||||
$fa-var-bus: "\f207";
|
||||
$fa-var-ioxhost: "\f208";
|
||||
$fa-var-angellist: "\f209";
|
||||
$fa-var-cc: "\f20a";
|
||||
$fa-var-ils: "\f20b";
|
||||
$fa-var-shekel: "\f20b";
|
||||
$fa-var-sheqel: "\f20b";
|
||||
$fa-var-meanpath: "\f20c";
|
||||
$fa-var-buysellads: "\f20d";
|
||||
$fa-var-connectdevelop: "\f20e";
|
||||
$fa-var-dashcube: "\f210";
|
||||
$fa-var-forumbee: "\f211";
|
||||
$fa-var-leanpub: "\f212";
|
||||
$fa-var-sellsy: "\f213";
|
||||
$fa-var-shirtsinbulk: "\f214";
|
||||
$fa-var-simplybuilt: "\f215";
|
||||
$fa-var-skyatlas: "\f216";
|
||||
$fa-var-cart-plus: "\f217";
|
||||
$fa-var-cart-arrow-down: "\f218";
|
||||
$fa-var-diamond: "\f219";
|
||||
$fa-var-ship: "\f21a";
|
||||
$fa-var-user-secret: "\f21b";
|
||||
$fa-var-motorcycle: "\f21c";
|
||||
$fa-var-street-view: "\f21d";
|
||||
$fa-var-heartbeat: "\f21e";
|
||||
$fa-var-venus: "\f221";
|
||||
$fa-var-mars: "\f222";
|
||||
$fa-var-mercury: "\f223";
|
||||
$fa-var-intersex: "\f224";
|
||||
$fa-var-transgender: "\f224";
|
||||
$fa-var-transgender-alt: "\f225";
|
||||
$fa-var-venus-double: "\f226";
|
||||
$fa-var-mars-double: "\f227";
|
||||
$fa-var-venus-mars: "\f228";
|
||||
$fa-var-mars-stroke: "\f229";
|
||||
$fa-var-mars-stroke-v: "\f22a";
|
||||
$fa-var-mars-stroke-h: "\f22b";
|
||||
$fa-var-neuter: "\f22c";
|
||||
$fa-var-genderless: "\f22d";
|
||||
$fa-var-facebook-official: "\f230";
|
||||
$fa-var-pinterest-p: "\f231";
|
||||
$fa-var-whatsapp: "\f232";
|
||||
$fa-var-server: "\f233";
|
||||
$fa-var-user-plus: "\f234";
|
||||
$fa-var-user-times: "\f235";
|
||||
$fa-var-bed: "\f236";
|
||||
$fa-var-hotel: "\f236";
|
||||
$fa-var-viacoin: "\f237";
|
||||
$fa-var-train: "\f238";
|
||||
$fa-var-subway: "\f239";
|
||||
$fa-var-medium: "\f23a";
|
||||
$fa-var-y-combinator: "\f23b";
|
||||
$fa-var-yc: "\f23b";
|
||||
$fa-var-optin-monster: "\f23c";
|
||||
$fa-var-opencart: "\f23d";
|
||||
$fa-var-expeditedssl: "\f23e";
|
||||
$fa-var-battery: "\f240";
|
||||
$fa-var-battery-4: "\f240";
|
||||
$fa-var-battery-full: "\f240";
|
||||
$fa-var-battery-3: "\f241";
|
||||
$fa-var-battery-three-quarters: "\f241";
|
||||
$fa-var-battery-2: "\f242";
|
||||
$fa-var-battery-half: "\f242";
|
||||
$fa-var-battery-1: "\f243";
|
||||
$fa-var-battery-quarter: "\f243";
|
||||
$fa-var-battery-0: "\f244";
|
||||
$fa-var-battery-empty: "\f244";
|
||||
$fa-var-mouse-pointer: "\f245";
|
||||
$fa-var-i-cursor: "\f246";
|
||||
$fa-var-object-group: "\f247";
|
||||
$fa-var-object-ungroup: "\f248";
|
||||
$fa-var-sticky-note: "\f249";
|
||||
$fa-var-sticky-note-o: "\f24a";
|
||||
$fa-var-cc-jcb: "\f24b";
|
||||
$fa-var-cc-diners-club: "\f24c";
|
||||
$fa-var-clone: "\f24d";
|
||||
$fa-var-balance-scale: "\f24e";
|
||||
$fa-var-hourglass-o: "\f250";
|
||||
$fa-var-hourglass-1: "\f251";
|
||||
$fa-var-hourglass-start: "\f251";
|
||||
$fa-var-hourglass-2: "\f252";
|
||||
$fa-var-hourglass-half: "\f252";
|
||||
$fa-var-hourglass-3: "\f253";
|
||||
$fa-var-hourglass-end: "\f253";
|
||||
$fa-var-hourglass: "\f254";
|
||||
$fa-var-hand-grab-o: "\f255";
|
||||
$fa-var-hand-rock-o: "\f255";
|
||||
$fa-var-hand-paper-o: "\f256";
|
||||
$fa-var-hand-stop-o: "\f256";
|
||||
$fa-var-hand-scissors-o: "\f257";
|
||||
$fa-var-hand-lizard-o: "\f258";
|
||||
$fa-var-hand-spock-o: "\f259";
|
||||
$fa-var-hand-pointer-o: "\f25a";
|
||||
$fa-var-hand-peace-o: "\f25b";
|
||||
$fa-var-trademark: "\f25c";
|
||||
$fa-var-registered: "\f25d";
|
||||
$fa-var-creative-commons: "\f25e";
|
||||
$fa-var-gg: "\f260";
|
||||
$fa-var-gg-circle: "\f261";
|
||||
$fa-var-tripadvisor: "\f262";
|
||||
$fa-var-odnoklassniki: "\f263";
|
||||
$fa-var-odnoklassniki-square: "\f264";
|
||||
$fa-var-get-pocket: "\f265";
|
||||
$fa-var-wikipedia-w: "\f266";
|
||||
$fa-var-safari: "\f267";
|
||||
$fa-var-chrome: "\f268";
|
||||
$fa-var-firefox: "\f269";
|
||||
$fa-var-opera: "\f26a";
|
||||
$fa-var-internet-explorer: "\f26b";
|
||||
$fa-var-television: "\f26c";
|
||||
$fa-var-tv: "\f26c";
|
||||
$fa-var-contao: "\f26d";
|
||||
$fa-var-500px: "\f26e";
|
||||
$fa-var-amazon: "\f270";
|
||||
$fa-var-calendar-plus-o: "\f271";
|
||||
$fa-var-calendar-minus-o: "\f272";
|
||||
$fa-var-calendar-times-o: "\f273";
|
||||
$fa-var-calendar-check-o: "\f274";
|
||||
$fa-var-industry: "\f275";
|
||||
$fa-var-map-pin: "\f276";
|
||||
$fa-var-map-signs: "\f277";
|
||||
$fa-var-map-o: "\f278";
|
||||
$fa-var-map: "\f279";
|
||||
$fa-var-commenting: "\f27a";
|
||||
$fa-var-commenting-o: "\f27b";
|
||||
$fa-var-houzz: "\f27c";
|
||||
$fa-var-vimeo: "\f27d";
|
||||
$fa-var-black-tie: "\f27e";
|
||||
$fa-var-fonticons: "\f280";
|
||||
$fa-var-reddit-alien: "\f281";
|
||||
$fa-var-edge: "\f282";
|
||||
$fa-var-credit-card-alt: "\f283";
|
||||
$fa-var-codiepie: "\f284";
|
||||
$fa-var-modx: "\f285";
|
||||
$fa-var-fort-awesome: "\f286";
|
||||
$fa-var-usb: "\f287";
|
||||
$fa-var-product-hunt: "\f288";
|
||||
$fa-var-mixcloud: "\f289";
|
||||
$fa-var-scribd: "\f28a";
|
||||
$fa-var-pause-circle: "\f28b";
|
||||
$fa-var-pause-circle-o: "\f28c";
|
||||
$fa-var-stop-circle: "\f28d";
|
||||
$fa-var-stop-circle-o: "\f28e";
|
||||
$fa-var-shopping-bag: "\f290";
|
||||
$fa-var-shopping-basket: "\f291";
|
||||
$fa-var-hashtag: "\f292";
|
||||
$fa-var-bluetooth: "\f293";
|
||||
$fa-var-bluetooth-b: "\f294";
|
||||
$fa-var-percent: "\f295";
|
||||
$fa-var-gitlab: "\f296";
|
||||
$fa-var-wpbeginner: "\f297";
|
||||
$fa-var-wpforms: "\f298";
|
||||
$fa-var-envira: "\f299";
|
||||
$fa-var-universal-access: "\f29a";
|
||||
$fa-var-wheelchair-alt: "\f29b";
|
||||
$fa-var-question-circle-o: "\f29c";
|
||||
$fa-var-blind: "\f29d";
|
||||
$fa-var-audio-description: "\f29e";
|
||||
$fa-var-volume-control-phone: "\f2a0";
|
||||
$fa-var-braille: "\f2a1";
|
||||
$fa-var-assistive-listening-systems: "\f2a2";
|
||||
$fa-var-american-sign-language-interpreting: "\f2a3";
|
||||
$fa-var-asl-interpreting: "\f2a3";
|
||||
$fa-var-deaf: "\f2a4";
|
||||
$fa-var-deafness: "\f2a4";
|
||||
$fa-var-hard-of-hearing: "\f2a4";
|
||||
$fa-var-glide: "\f2a5";
|
||||
$fa-var-glide-g: "\f2a6";
|
||||
$fa-var-sign-language: "\f2a7";
|
||||
$fa-var-signing: "\f2a7";
|
||||
$fa-var-low-vision: "\f2a8";
|
||||
$fa-var-viadeo: "\f2a9";
|
||||
$fa-var-viadeo-square: "\f2aa";
|
||||
$fa-var-snapchat: "\f2ab";
|
||||
$fa-var-snapchat-ghost: "\f2ac";
|
||||
$fa-var-snapchat-square: "\f2ad";
|
||||
$fa-var-pied-piper: "\f2ae";
|
||||
$fa-var-first-order: "\f2b0";
|
||||
$fa-var-yoast: "\f2b1";
|
||||
$fa-var-themeisle: "\f2b2";
|
||||
$fa-var-google-plus-circle: "\f2b3";
|
||||
$fa-var-google-plus-official: "\f2b3";
|
||||
$fa-var-fa: "\f2b4";
|
||||
$fa-var-font-awesome: "\f2b4";
|
||||
$fa-var-handshake-o: "\f2b5";
|
||||
$fa-var-envelope-open: "\f2b6";
|
||||
$fa-var-envelope-open-o: "\f2b7";
|
||||
$fa-var-linode: "\f2b8";
|
||||
$fa-var-address-book: "\f2b9";
|
||||
$fa-var-address-book-o: "\f2ba";
|
||||
$fa-var-address-card: "\f2bb";
|
||||
$fa-var-vcard: "\f2bb";
|
||||
$fa-var-address-card-o: "\f2bc";
|
||||
$fa-var-vcard-o: "\f2bc";
|
||||
$fa-var-user-circle: "\f2bd";
|
||||
$fa-var-user-circle-o: "\f2be";
|
||||
$fa-var-user-o: "\f2c0";
|
||||
$fa-var-id-badge: "\f2c1";
|
||||
$fa-var-drivers-license: "\f2c2";
|
||||
$fa-var-id-card: "\f2c2";
|
||||
$fa-var-drivers-license-o: "\f2c3";
|
||||
$fa-var-id-card-o: "\f2c3";
|
||||
$fa-var-quora: "\f2c4";
|
||||
$fa-var-free-code-camp: "\f2c5";
|
||||
$fa-var-telegram: "\f2c6";
|
||||
$fa-var-thermometer: "\f2c7";
|
||||
$fa-var-thermometer-4: "\f2c7";
|
||||
$fa-var-thermometer-full: "\f2c7";
|
||||
$fa-var-thermometer-3: "\f2c8";
|
||||
$fa-var-thermometer-three-quarters: "\f2c8";
|
||||
$fa-var-thermometer-2: "\f2c9";
|
||||
$fa-var-thermometer-half: "\f2c9";
|
||||
$fa-var-thermometer-1: "\f2ca";
|
||||
$fa-var-thermometer-quarter: "\f2ca";
|
||||
$fa-var-thermometer-0: "\f2cb";
|
||||
$fa-var-thermometer-empty: "\f2cb";
|
||||
$fa-var-shower: "\f2cc";
|
||||
$fa-var-bath: "\f2cd";
|
||||
$fa-var-bathtub: "\f2cd";
|
||||
$fa-var-s15: "\f2cd";
|
||||
$fa-var-podcast: "\f2ce";
|
||||
$fa-var-window-maximize: "\f2d0";
|
||||
$fa-var-window-minimize: "\f2d1";
|
||||
$fa-var-window-restore: "\f2d2";
|
||||
$fa-var-times-rectangle: "\f2d3";
|
||||
$fa-var-window-close: "\f2d3";
|
||||
$fa-var-times-rectangle-o: "\f2d4";
|
||||
$fa-var-window-close-o: "\f2d4";
|
||||
$fa-var-bandcamp: "\f2d5";
|
||||
$fa-var-grav: "\f2d6";
|
||||
$fa-var-etsy: "\f2d7";
|
||||
$fa-var-imdb: "\f2d8";
|
||||
$fa-var-ravelry: "\f2d9";
|
||||
$fa-var-eercast: "\f2da";
|
||||
$fa-var-microchip: "\f2db";
|
||||
$fa-var-snowflake-o: "\f2dc";
|
||||
$fa-var-superpowers: "\f2dd";
|
||||
$fa-var-wpexplorer: "\f2de";
|
||||
$fa-var-meetup: "\f2e0";
|
@ -1,18 +0,0 @@
|
||||
/*!
|
||||
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
|
||||
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
||||
*/
|
||||
|
||||
@import "variables";
|
||||
@import "mixins";
|
||||
@import "path";
|
||||
@import "core";
|
||||
@import "larger";
|
||||
@import "fixed-width";
|
||||
@import "list";
|
||||
@import "bordered-pulled";
|
||||
@import "animated";
|
||||
@import "rotated-flipped";
|
||||
@import "stacked";
|
||||
@import "icons";
|
||||
@import "screen-reader";
|
@ -1,43 +0,0 @@
|
||||
$fontdir: "../fonts" !default;
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('#{$fontdir}/OpenSans-Italic.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans SemiBold Italic'), local('OpenSans-SemiBoldItalic'), url(#{$fontdir}/OpenSans-SemiBoldItalic.ttf) format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 800;
|
||||
src: local('Open Sans ExtraBold Italic'), local('OpenSans-ExtraBoldItalic'), url(#{$fontdir}/OpenSans-ExtraBoldItalic.ttf) format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(#{$fontdir}/OpenSans-Regular.ttf) format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Open Sans SemiBold'), local('OpenSans-SemiBold'), url(#{$fontdir}/OpenSans-SemiBold.ttf) format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 800;
|
||||
src: local('Open Sans ExtraBold'), local('OpenSans-ExtraBold'), url(#{$fontdir}/OpenSans-ExtraBold.ttf) format('truetype');
|
||||
}
|
@ -16,14 +16,14 @@
|
||||
$size: (
|
||||
element-height: 2.75em,
|
||||
element-margin: 2em,
|
||||
letter-spacing: 0.075em,
|
||||
letter-spacing-alt: 0.225em
|
||||
letter-spacing: 0,
|
||||
letter-spacing-alt: 0.1em
|
||||
);
|
||||
|
||||
// Font.
|
||||
$font: (
|
||||
family: ('Open Sans', Helvetica, sans-serif),
|
||||
family-fixed: ('Courier New', monospace),
|
||||
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
|
||||
@ -53,7 +53,7 @@
|
||||
|
||||
accent2: (
|
||||
bg: #ffffff,
|
||||
fg-bold: #2E3842,
|
||||
fg-bold: #41505E,
|
||||
fg: #4E4852,
|
||||
fg-light: #8E8892,
|
||||
border: #dfdfdf,
|
||||
@ -82,5 +82,16 @@
|
||||
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(#F3A712, #ffffff, 25%),
|
||||
fg-light: mix(#F3A712, #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)
|
||||
),
|
||||
);
|
@ -3,8 +3,6 @@
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
@import "libs/_font-awesome/font-awesome";
|
||||
@import "libs/_google-fonts/opensans";
|
||||
|
||||
/*
|
||||
Spectral by HTML5 UP
|
||||
@ -43,39 +41,41 @@
|
||||
@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);
|
||||
@include vendor('background-image', ('linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5))', 'url("../../assets/images/banner.jpg")'));
|
||||
position: relative;
|
||||
background-attachment: fixed;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
text-align: center;
|
||||
z-index: -2;
|
||||
|
||||
> * {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.header-image {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-attachment: fixed;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
z-index: 0;
|
||||
filter: blur(3px) brightness(40%);
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.75em;
|
||||
margin: 0 0 (_size(element-margin) * 0.25) 0;
|
||||
@ -126,15 +126,15 @@ body.is-mobile {
|
||||
/* Footer */
|
||||
|
||||
#footer {
|
||||
@include padding(6em, 0);
|
||||
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 {
|
||||
color: _palette(fg-light);
|
||||
|
||||
&:hover {
|
||||
color: _palette(fg);
|
||||
@ -142,13 +142,17 @@ body.is-mobile {
|
||||
}
|
||||
}
|
||||
|
||||
.copyright {
|
||||
color: _palette(fg-light);
|
||||
.copyright, .cotech-text {
|
||||
font-size: 0.8em;
|
||||
letter-spacing: _size(letter-spacing-alt);
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
list-style: none;
|
||||
padding: 0.25em 0;
|
||||
|
||||
|
||||
li {
|
||||
border-left: solid 1px _palette(fg-light);
|
||||
@ -180,21 +184,46 @@ body.is-mobile {
|
||||
}
|
||||
}
|
||||
}
|
||||
.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, 3em);
|
||||
@include padding(4em, 0em);
|
||||
}
|
||||
|
||||
@include breakpoint(small) {
|
||||
@include padding(3em, 2em);
|
||||
@include padding(3em, 0em);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Landing */
|
||||
|
||||
body.landing {
|
||||
#page-wrapper {
|
||||
@include vendor('background-image', ('linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5))', 'url("../../assets/images/banner.jpg")'));
|
||||
background-attachment: fixed;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
@ -219,7 +248,6 @@ body.is-mobile {
|
||||
|
||||
#banner,
|
||||
.wrapper.style4 {
|
||||
@include vendor('background-image', ('linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5))', 'url("../../assets/images/banner.jpg")'));
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
|
1
src/assets/svg/creative-commons-brands.svg
Normal file
@ -0,0 +1 @@
|
||||
<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>
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/svg/mastodon-brands.svg
Normal file
@ -0,0 +1 @@
|
||||
<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>
|
After Width: | Height: | Size: 843 B |
1
src/assets/svg/twitter-brands.svg
Normal file
@ -0,0 +1 @@
|
||||
<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>
|
After Width: | Height: | Size: 1017 B |
@ -2,4 +2,5 @@
|
||||
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.
|
||||
---
|
||||
|