Compare commits
	
		
			95 Commits
		
	
	
		
			1.0.3
			...
			colour-sch
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6c5ad61fbc | |||
| 26f02bf6d7 | |||
| 603e5c96f1 | |||
| 39eef16f9e | |||
| 04c7d20a56 | |||
| a2f5a6cbac | |||
| d3ea095d2b | |||
| 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 | ||||
|  | ||||
| @ -1,15 +1,15 @@ | ||||
| # coding: utf-8 | ||||
|  | ||||
| Gem::Specification.new do |spec| | ||||
|   spec.name     = "autonomic" | ||||
|   spec.name        = "autonomic" | ||||
|   spec.version     = '0.0.0' | ||||
|   spec.date        = '2017-09-24' | ||||
|   spec.summary     = "" | ||||
|   spec.description = "" | ||||
|   spec.authors     = ['autonomic co-operative'] | ||||
|   spec.email       = 'autonomic.posteo.net' | ||||
|   spec.files         = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(assets|_layouts|_includes|_sass|LICENSE|README)}i) } | ||||
|   spec.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 %} | ||||
|   </ul> | ||||
|   <ul class="copyright"> | ||||
|     <li class="icon fa-creative-commons"> {{ site.title }}</li> | ||||
|   </ul> | ||||
|   <div class="row"> | ||||
|     <div class="column"> | ||||
|       <a class="named-anchor" name="contact"></a> | ||||
|         <h3>Get in Touch</h3> | ||||
|         Contact us to discuss your project's needs and arrange a consultation. | ||||
|         <a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></br></br> | ||||
|         <a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">PGP key:</a> | ||||
|         <code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code> | ||||
|  | ||||
|       <ul class="icons" style="margin-bottom: 0; padding-top: 1em"> | ||||
|         <li> | ||||
|           <a rel="noopener" href="{{ site.twitter_url }}" style="border-bottom: none"> | ||||
|             <img alt="twitter" style="height: 2rem;" src="{{ '/assets/svg/twitter-brands.svg' | absolute_url }}"> | ||||
|           </a> | ||||
|         </li> | ||||
|         <li> | ||||
|           <a rel="me" href="{{ site.mastodon_url }}" style="border-bottom: none"> | ||||
|             <img alt="mastodon" style="height: 2rem;" src="{{ '/assets/svg/mastodon-brands.svg' | absolute_url }}"> | ||||
|           </a> | ||||
|         </li> | ||||
|       </ul> | ||||
|  | ||||
|     </div> | ||||
|     <div class="column"> | ||||
|       <div class="copyright"> | ||||
|         <object style="height: 1.2rem; vertical-align: text-bottom;" type="image/svg+xml" data="{{ '/assets/svg/creative-commons-brands.svg' | absolute_url }}"> | ||||
|           Your browser does not support SVG | ||||
|         </object>  | ||||
|         {{ site.title }} | ||||
|       </div> | ||||
|       <div class="cotech-box"> | ||||
|         <a href="https://www.coops.tech/"> | ||||
|           <img class="cotech-logo" src="{{ '/assets/images/CoTech-white-logo.png' | relative_url }}" alt="CoTech"/> | ||||
|           <span class="cotech-text">Member of the Cotech Network</span> | ||||
|         </a> | ||||
|       </div> | ||||
|       <div style="vertical-align: bottom;"> | ||||
|         <address> | ||||
|           Autonomic Co-operative Limited</br> | ||||
|           1539 Pershore Road</br> | ||||
|           Birmingham</br> | ||||
|           B30 2JH</br> | ||||
|           United Kingdom</br> | ||||
|         </address> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </footer> | ||||
|  | ||||
| </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> | ||||
|  | ||||
| @ -1,10 +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]--> | ||||
|  | ||||
|   {% 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 @@ | ||||
| <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"> | ||||
|   <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> | ||||
|         </li> | ||||
|       </ul> | ||||
|     </nav> | ||||
|   </header> | ||||
|  | ||||
							
								
								
									
										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> | ||||
| @ -2,77 +2,112 @@ | ||||
| <section id="three" class="wrapper style6 special"> | ||||
|   <div class="inner"> | ||||
|     <header class="major"> | ||||
|       <h2>Services we offer</h2> | ||||
|       <h2>Cooperative Cloud: For Organisations</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"> | ||||
|         <h3>Encrypted Email</h3> | ||||
|         <p> | ||||
|           Secure your email communications with state of the art transport | ||||
|           encryption and <a href="https://0xacab.org/riseuplabs/trees">TREES</a> | ||||
|           encrypted mailbox storage. | ||||
|         </p> | ||||
|       <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M127 896q0-163 67-313l367 1005q-196-95-315-281T127 896zm1288-39l-2 39q-2 20-10 49t-12 44-17 59-18 58l-76 256-278-826q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10q-75-1-202-10-12-1-20 5t-12 15-1 19 9 16 19 8l80 8 120 328-168 504-280-832q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10h-23l-26-1q105-160 275-253t367-94q147 0 281 53t238 149h-10q-55 0-92 41t-37 95l2 24 4 22q2 10 8 23t9 21 12 22 13 21 14 24 14 23q63 107 63 212zM909 963l237 647q1 6 5 11-126 44-255 44-112 0-217-32zm661-436q95 174 95 369 0 209-104 386t-279 278l235-678q59-169 59-276 0-42-6-79zM896 0q182 0 348 71t286 191 191 286 71 348-71 348-191 286-286 191-348 71-348-71-286-191-191-286T0 896t71-348 191-286T548 71 896 0zm0 1751q173 0 332-68t273-182 182-273 68-332-68-331-182-273-273-183-332-68-331 68-273 183-183 273-68 331 68 332 183 273 273 182 331 68z"/></svg> | ||||
|         <div> | ||||
|           <h3>Websites</h3> | ||||
|           <p> | ||||
|             We offer <a href="https://wordpress.com/">Wordpress</a> and static sites. Either managed or unmanaged with frictionless tools for editing and publishing that empower users. <a href="https://matomo.org/">Matamo</a> provides ethical analytics to measure impact.  | ||||
|           </p> | ||||
|           </div> | ||||
|       </li> | ||||
|       <li class="icon fa-rocket2"> | ||||
|         <h3>Text and Video Chat</h3> | ||||
|         <p> | ||||
|           Mobile friendly multi-channel team chat using <a href="https://rocket.chat/">Rocket.Chat</a>, | ||||
|           with no artificial limits on features. Vital for remote project coordination. | ||||
|         </p> | ||||
|       <!-- <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1703 478q40 57 18 129l-275 906q-19 64-76 108t-123 43H324q-77 0-148-53T76 1479q-24-67-2-127l3-27 4-37q1-8-3-21t-3-20q2-11 8-21t17-23 16-24q23-38 45-91t30-92q3-10 1-30t-1-28q3-11 17-28t17-23q21-36 42-92t25-90q1-9-2-32t0-28q4-13 22-30t22-23q19-26 43-84t27-97q1-8-3-25t-2-27q2-8 9-18t18-23 17-21q8-12 17-30t15-35 16-36 19-32 27-24 36-11 47 5l-1 3q38-9 51-9h761q74 0 114 56t18 130l-274 906q-36 119-71 154t-129 34H220q-27 0-38 15-11 16-1 43 24 70 144 70h923q29 0 56-15t35-42l300-987q7-22 5-57 38 15 59 43zm-1064 2q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H702q-13 0-25 10t-17 22zm-83 256q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H619q-13 0-25 10t-17 22z"/></svg> | ||||
|         <div> | ||||
|           <h3>CRM and Case Management</h3> | ||||
|           <p> | ||||
|             For case work (e.g. housing or asylum support) we offer our own system, OpenCase. It's simple and user-friendly, perfect for small, volunteer-led groups. We will also consider CiviCRM depending on requirements. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> --> | ||||
|       <!-- <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1764 11q33 24 27 64l-256 1536q-5 29-32 45-14 8-31 8-11 0-24-5l-527-215-298 327q-18 21-47 21-14 0-23-4-19-7-30-23t-11-37v-452L40 1083q-37-14-40-55-3-39 32-59L1696 9q35-21 68 2zm-342 1499l221-1323-1434 827 336 137 863-639-478 797z"/></svg> | ||||
|         <div> | ||||
|           <h3>Encrypted Email</h3> | ||||
|           <p> | ||||
|             Secure your email communications with state of the art transport | ||||
|             encryption and <a href="https://0xacab.org/riseuplabs/trees">TREES</a> | ||||
|             encrypted mailbox storage. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> --> | ||||
|       <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 1024 901"><g fill-rule="nonzero"><path d="M898 350zM308 38c32 18 62 40 87 64 41-7 84-11 127-11 128 0 250 34 343 95 48 32 86 70 113 112a279 279 0 010 305c-27 42-65 80-113 111-93 62-215 95-343 95-43 0-86-3-127-11-25 25-55 47-87 65-168 84-308 2-308 2s130-111 109-208c-58-59-90-131-90-207 0-75 32-147 90-207C130 146 0 36 0 36s140-82 308 2zM208 618c16 52 6 111-29 176l-5 10c30-3 61-11 92-27 24-13 46-30 65-48l36-34c48 13 101 20 157 20 225 0 408-118 408-265 0-146-183-264-408-264-226 0-409 118-409 264 0 64 35 123 93 168z"/><path d="M328 509a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 11-1-120 60 60 0 011 120z"/></g></svg> | ||||
|         <div> | ||||
|           <h3>Team Chat</h3> | ||||
|           <p> | ||||
|             Mobile friendly multi-channel team chat using <a href="https://rocket.chat/">Rocket.Chat</a>, | ||||
|             with no artificial limits on features. Vital for remote project coordination. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> | ||||
|       <li class="icon fa-cloud-o"> | ||||
|         <h3>Cloud Storage and Collaboration</h3> | ||||
|         <p> | ||||
|           <a href="https://sandstorm.io/">Sandstorm</a> is a personal "cloud | ||||
|           in a box" , designed with the upmost security in mind. It allows you to | ||||
|           deploy apps for file-storage, collaborative document editing, | ||||
|           calendars, to-do lists and much more. | ||||
|         </p> | ||||
|       <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 2048 1792"><path d="M1984 1152q0 159-112 272t-272 112H512q-185 0-316-131T64 1088q0-132 71-241t187-164l-2-43q0-212 150-362t362-150q158 0 287 88t187 230q70-62 166-62 106 0 181 75t75 181q0 75-41 138 129 30 213 135t84 239z"/></svg> | ||||
|         <div> | ||||
|           <h3>Cloud Storage and Collaboration</h3> | ||||
|           <p> | ||||
|             <a href="https://nextcloud.com/">Nextcloud</a> for file-storage, collaborative document editing, calendars. We also host <a href="https://github.com/hackmdio/codimd">CodiMD</a>, <a href="https://etherpad.org/">Etherpad</a>, <a href="https://gitea.io">Gitea</a> and <a href="https://wekan.github.io/">Wekan</a> instances. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> | ||||
|       <li class="icon fa-headphones"> | ||||
|         <h3>Voice Conferencing</h3> | ||||
|         <p> | ||||
|           Stable and low latency voice communications using <a href="https://wiki.mumble.info/wiki/Main_Page">Mumble</a>. | ||||
|           Perfect for meetings, even with large groups, on mobile, or with low bandwidth. | ||||
|         </p> | ||||
|       <!-- <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1728 886q0 166-60 314l-20 49-185 33q-22 83-90 137t-157 53v32q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23V928q0-14 9-23t23-9h64q14 0 23 9t9 23v32q71 0 130 36t93 95l68-12q29-95 29-193 0-148-88-279t-236-209-316-78-315 78-237 209-88 279q0 98 29 193l68 12q34-60 93-95t130-36v-32q0-14 9-23t23-9h64q14 0 23 9t9 23v576q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-32q-88 0-156-53t-91-137l-185-33-20-49q-60-148-60-314 0-151 67-291t179-242 266-164 320-61 320 61 266 164 179 242 67 291z"/></svg> | ||||
|         <div> | ||||
|           <h3>Voice Conferencing</h3> | ||||
|           <p> | ||||
|             Stable and low latency voice communications using <a href="https://wiki.mumble.info/wiki/Main_Page">Mumble</a>. | ||||
|             Perfect for meetings, even with large groups, on mobile, or with low bandwidth. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> --> | ||||
|       <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M704 384q-153 0-286 52T207 577t-79 191q0 82 53 158t149 132l97 56-35 84q34-20 62-39l44-31 53 10q78 14 153 14 153 0 286-52t212-141 78-191-78-191-212-141-286-52zm0-128q191 0 354 69t256 186 94 257-94 257-256 187-354 68q-86 0-176-16-124 88-278 128-36 9-86 16h-3q-11 0-20-8t-12-21l-1-6 1-7 2-6 2-5 4-5 4-5 4-5 4-5 23-25 26-29 23-29q15-19 25-39t20-44q-124-72-195-177T0 768q0-139 94-257t257-186 353-69zm822 1169q10 24 21 44t25 39 22 29 26 29 23 25l4 5 5 5 4 5 3 5 3 5 2 6v7l-1 6q-3 14-13 22t-22 7q-50-7-86-16-154-40-278-128-90 16-176 16-271 0-472-132 58 4 88 4 161 0 309-45t264-129q125-92 192-212t67-254q0-77-23-152 129 71 204 178t75 230q0 120-71 225t-195 176z"/></svg> | ||||
|         <div> | ||||
|           <h3>Forum and Mailing Lists</h3> | ||||
|           <p> | ||||
|             Build your online community with a modern and responsive forum with | ||||
|             <a href="https://www.discourse.org/">Discourse</a>. An accessible | ||||
|             replacement for traditional mailing lists. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> | ||||
|       <li class="icon fa-comments-o"> | ||||
|         <h3>Forum and Mailing Lists</h3> | ||||
|         <p> | ||||
|           Build your online community with a modern and responsive forum with | ||||
|           <a href="https://www.discourse.org/">Discourse</a>. An accessible | ||||
|           replacement for traditional mailing lists. | ||||
|         </p> | ||||
|       <!-- <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 2048 1792"><path d="M2020 11q28 20 28 53v1408q0 20-11 36t-29 23l-640 256q-24 11-48 0l-616-246-616 246q-10 5-24 5-19 0-36-11-28-20-28-53V320q0-20 11-36t29-23L680 5q24-11 48 0l616 246L1960 5q32-13 60 6zM736 146v1270l576 230V376zM128 363v1270l544-217V146zm1792 1066V159l-544 217v1270z"/></svg> | ||||
|         <div> | ||||
|           <h3>Interactive Data and Mapping</h3> | ||||
|           <p> | ||||
|             Got some data? We can provide a variety of interactive data | ||||
|             visualisations, including mapping using <a href="https://www.openstreetmap.org">OpenStreetMap</a>, | ||||
|             and charts using <a href="https://d3js.org/">D3.js</a>. Get the most out of your | ||||
|             data by presenting it in a bespoke web app. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> --> | ||||
|       <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 2048 1792"><path d="M681 1399l-50 50q-10 10-23 10t-23-10L119 983q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23L288 960l393 393q10 10 10 23t-10 23zm591-1067L899 1623q-4 13-15 20t-24 2l-62-17q-13-4-19-15t-3-25l373-1291q4-13 16-19t23-3l62 17q13 4 20 16t2 24zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z"/></svg> | ||||
|         <div> | ||||
|           <h3>Bespoke Development</h3> | ||||
|           <p> | ||||
|             For some problems, there may not be a pre-existing solution. Let us guide you through the full development cycle to deliver your bespoke solution. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> | ||||
|       <li class="icon fa-map-o"> | ||||
|         <h3>Interactive Data and Mapping</h3> | ||||
|         <p> | ||||
|           Got some data? We can provide a variety of interactive data | ||||
|           visualisations, including mapping using <a href="https://www.openstreetmap.org">OpenStreetMap</a>, | ||||
|           and charts using <a href="https://d3js.org/">D3.js</a>. Get the most out of your | ||||
|           data by presenting it in a bespoke web app. | ||||
|         </p> | ||||
|       </li> | ||||
|       <li class="icon fa-code"> | ||||
|         <h3>Bespoke Development</h3> | ||||
|         <p> | ||||
|           For some problems, there may not be a pre-existing free software solution. Let | ||||
|           us guide you through the full development cycle to deliver your bespoke solution. | ||||
|         </p> | ||||
|       </li> | ||||
|       <li class="icon fa-lock"> | ||||
|         <h3>Cybersecurity Training</h3> | ||||
|         <p> | ||||
|           A grounded and principled understanding of the cybersecurity domain can ensure | ||||
|           your organisation is not liable to any unwanted security threats. We provide | ||||
|           structured training. | ||||
|         </p> | ||||
|       <li class="features-item"> | ||||
|         <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M640 768h512V576q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28H416q-40 0-68-28t-28-68V864q0-40 28-68t68-28h32V576q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z"/></svg> | ||||
|         <div> | ||||
|           <h3>Cybersecurity Training</h3> | ||||
|           <p> | ||||
|             A grounded and principled understanding of the cybersecurity domain can ensure | ||||
|             your organisation is not liable to any unwanted security threats. We provide | ||||
|             structured training tailored to your threat model. | ||||
|           </p> | ||||
|         </div> | ||||
|       </li> | ||||
|     </ul> | ||||
|   </div> | ||||
|  | ||||
| @ -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> | ||||
|             {% 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> | ||||
|         <header | ||||
|             {% if page.image %} | ||||
|             style="background-image: url('{% if site.featured-image-source %}{{ page.image | prepend: site.featured-image-source | absolute_url }}{% else %}{{ "" | absolute_url }}/assets/images/{{ page.image }}{% endif %}');" | ||||
|             {% endif %} | ||||
|         > | ||||
|             <h2>{{ page.title }}</h2> | ||||
|             <p>{{ page.description }}</p> | ||||
|         </header> | ||||
| @ -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); | ||||
| @ -1,220 +1,190 @@ | ||||
| /* | ||||
|   Spectral by HTML5 UP | ||||
|   html5up.net | @ajlkn | ||||
|   Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) | ||||
| */ | ||||
|  | ||||
| (function($) { | ||||
|   skel | ||||
|     .breakpoints({ | ||||
|       xlarge: '(max-width: 1680px)', | ||||
|       large: '(max-width: 1280px)', | ||||
|       medium: '(max-width: 980px)', | ||||
|       small: '(max-width: 736px)', | ||||
|       xsmall: '(max-width: 480px)' | ||||
|     }); | ||||
|  | ||||
|   $(function() { | ||||
|  | ||||
|     var $window = $(window), | ||||
|       $body = $('body'), | ||||
|       $wrapper = $('#page-wrapper'), | ||||
|       $banner = $('#banner'), | ||||
|       $header = $('#header'); | ||||
|  | ||||
|     // Disable animations/transitions until the page has loaded. | ||||
|     $body.addClass('is-loading'); | ||||
|  | ||||
|     $window.on('load', function() { | ||||
|       window.setTimeout(function() { | ||||
|         $body.removeClass('is-loading'); | ||||
|       }, 100); | ||||
|     }); | ||||
|  | ||||
|     // Mobile? | ||||
|     if (skel.vars.mobile) | ||||
|       $body.addClass('is-mobile'); | ||||
|     else | ||||
|       skel | ||||
|       .on('-medium !medium', function() { | ||||
|         $body.removeClass('is-mobile'); | ||||
|       }) | ||||
|       .on('+medium', function() { | ||||
|         $body.addClass('is-mobile'); | ||||
|       }); | ||||
|  | ||||
|     // Fix: Placeholder polyfill. | ||||
|     $('form').placeholder(); | ||||
|  | ||||
|     // Prioritize "important" elements on medium. | ||||
|     skel.on('+medium -medium', function() { | ||||
|       $.prioritize( | ||||
|         '.important\\28 medium\\29', | ||||
|         skel.breakpoint('medium').active | ||||
|       ); | ||||
|     }); | ||||
|  | ||||
|     // Scrolly. | ||||
|     $('.scrolly') | ||||
|       .scrolly({ | ||||
|         speed: 1500, | ||||
|         offset: $header.outerHeight() | ||||
|       }); | ||||
|  | ||||
|     $("#menu").show(); | ||||
|  | ||||
|     // Menu. | ||||
|     $('#menu') | ||||
|       .append('<a href="#menu" class="close"></a>') | ||||
|       .appendTo($body) | ||||
|       .panel({ | ||||
|         delay: 500, | ||||
|         hideOnClick: true, | ||||
|         hideOnSwipe: true, | ||||
|         resetScroll: true, | ||||
|         resetForms: true, | ||||
|         side: 'right', | ||||
|         target: $body, | ||||
|         visibleClass: 'is-menu-visible' | ||||
|       }); | ||||
|  | ||||
|     // Header. | ||||
|     if (skel.vars.IEVersion < 9) | ||||
|       $header.removeClass('alt'); | ||||
|  | ||||
|     if ($banner.length > 0 && | ||||
|       $header.hasClass('alt')) { | ||||
|  | ||||
|       $window.on('resize', function() { | ||||
|         $window.trigger('scroll'); | ||||
|       }); | ||||
|  | ||||
|       $banner.scrollex({ | ||||
|         bottom: $header.outerHeight() + 1, | ||||
|         terminate: function() { | ||||
|           $header.removeClass('alt'); | ||||
|         }, | ||||
|         enter: function() { | ||||
|           $header.addClass('alt'); | ||||
|         }, | ||||
|         leave: function() { | ||||
|           $header.removeClass('alt'); | ||||
|         } | ||||
|       }); | ||||
|  | ||||
|     // Particles | ||||
|     if ($( window ).width() > 980) { | ||||
|       particlesJS('banner', { | ||||
|         "particles": { | ||||
|           "number": { | ||||
|           "value": 65, | ||||
|           "density": { | ||||
|             "enable": false, | ||||
|             "value_area": 800 | ||||
|           } | ||||
|           }, | ||||
|           "color": { | ||||
|           "value": "#f99081" | ||||
|           }, | ||||
|           "shape": { | ||||
|           "type": "circle", | ||||
|           "stroke": { | ||||
|             "width": 0, | ||||
|             "color": "#000000" | ||||
|           }, | ||||
|           "polygon": { | ||||
|             "nb_sides": 5 | ||||
|           }, | ||||
|           "image": { | ||||
|             "src": "img/github.svg", | ||||
|             "width": 100, | ||||
|             "height": 100 | ||||
|           } | ||||
|           }, | ||||
|           "opacity": { | ||||
|           "value": 0.6, | ||||
|           "random": true, | ||||
|           "anim": { | ||||
|             "enable": false, | ||||
|             "speed": 1, | ||||
|             "opacity_min": 0.4, | ||||
|             "sync": false | ||||
|           } | ||||
|           }, | ||||
|           "size": { | ||||
|           "value": 14, | ||||
|           "random": true, | ||||
|           "anim": { | ||||
|             "enable": true, | ||||
|             "speed": 6, | ||||
|             "size_min": 4, | ||||
|             "sync": false | ||||
|           } | ||||
|           }, | ||||
|           "line_linked": { | ||||
|           "enable": true, | ||||
|           "distance": 250, | ||||
|           "color": "#f99081", | ||||
|           "opacity": 0.8, | ||||
|           "width": 2 | ||||
|           }, | ||||
|           "move": { | ||||
|           "enable": true, | ||||
|           "speed": 0.4, | ||||
|           "direction": "none", | ||||
|           "random": true, | ||||
|           "straight": false, | ||||
|           "out_mode": "out", | ||||
|           "bounce": false, | ||||
|           "attract": { | ||||
|             "enable": false, | ||||
|             "rotateX": 600, | ||||
|             "rotateY": 1200 | ||||
|           } | ||||
|           } | ||||
|         }, | ||||
|         "interactivity": { | ||||
|           "detect_on": "canvas", | ||||
|           "events": { | ||||
|           "onhover": { | ||||
|             "enable": true, | ||||
|             "mode": "grab" | ||||
|           }, | ||||
|           "onclick": { | ||||
|             "enable": true, | ||||
|             "mode": "push" | ||||
|           }, | ||||
|           "resize": true | ||||
|           }, | ||||
|           "modes": { | ||||
|           "grab": { | ||||
|             "distance": 200, | ||||
|             "line_linked": { | ||||
|             "opacity": 0.8 | ||||
|             } | ||||
|           }, | ||||
|           "bubble": { | ||||
|             "distance": 400, | ||||
|             "size": 40, | ||||
|             "duration": 2, | ||||
|             "opacity": 8, | ||||
|             "speed": 3 | ||||
|           }, | ||||
|           "repulse": { | ||||
|             "distance": 200, | ||||
|             "duration": 0.4 | ||||
|           }, | ||||
|           "push": { | ||||
|             "particles_nb": 2 | ||||
|           }, | ||||
|           "remove": { | ||||
|             "particles_nb": 2 | ||||
|           } | ||||
|           } | ||||
|         }, | ||||
|         "retina_detect": true | ||||
|         }); | ||||
|       } | ||||
|     } | ||||
|   }); | ||||
| })(jQuery); | ||||
| /* | ||||
|   Spectral by HTML5 UP | ||||
|   html5up.net | @ajlkn | ||||
|   Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) | ||||
| */ | ||||
|  | ||||
| (function($) { | ||||
|   skel.breakpoints({ | ||||
|     xlarge: "(max-width: 1680px)", | ||||
|     large: "(max-width: 1280px)", | ||||
|     medium: "(max-width: 980px)", | ||||
|     small: "(max-width: 736px)", | ||||
|     xsmall: "(max-width: 480px)" | ||||
|   }); | ||||
|  | ||||
|   var $window = $(window), | ||||
|     $body = $("body"), | ||||
|     $wrapper = $("#page-wrapper"), | ||||
|     $banner = $("#banner"), | ||||
|     $header = $(".header"); | ||||
|  | ||||
|   // Disable animations/transitions until the page has loaded. | ||||
|   $body.addClass("is-loading"); | ||||
|  | ||||
|   $window.on("load", function() { | ||||
|     window.setTimeout(function() { | ||||
|       $body.removeClass("is-loading"); | ||||
|     }, 100); | ||||
|   }); | ||||
|  | ||||
|   // Mobile? | ||||
|   if (skel.vars.mobile) { | ||||
|     $body.addClass("is-mobile"); | ||||
|   } else { | ||||
|     skel | ||||
|       .on("-medium !medium", function() { | ||||
|         $body.removeClass("is-mobile"); | ||||
|       }) | ||||
|       .on("+medium", function() { | ||||
|         $body.addClass("is-mobile"); | ||||
|       }); | ||||
|   } | ||||
|  | ||||
|   // Fix: Placeholder polyfill. | ||||
|   $("form").placeholder(); | ||||
|  | ||||
|   // Prioritize "important" elements on medium. | ||||
|   skel.on("+medium -medium", function() { | ||||
|     $.prioritize( | ||||
|       ".important\\28 medium\\29", | ||||
|       skel.breakpoint("medium").active | ||||
|     ); | ||||
|   }); | ||||
|  | ||||
|   // Header. | ||||
|   if (skel.vars.IEVersion < 9) $header.removeClass("alt"); | ||||
|  | ||||
|   if ($banner.length > 0 && $header.hasClass("alt")) { | ||||
|     $window.on("resize", function() { | ||||
|       $window.trigger("scroll"); | ||||
|     }); | ||||
|  | ||||
|     $banner.scrollex({ | ||||
|       bottom: $header.outerHeight() + 1, | ||||
|       terminate: function() { | ||||
|         $header.removeClass("alt"); | ||||
|       }, | ||||
|       enter: function() { | ||||
|         $header.addClass("alt"); | ||||
|       }, | ||||
|       leave: function() { | ||||
|         $header.removeClass("alt"); | ||||
|       } | ||||
|     }); | ||||
|  | ||||
|     // Particles | ||||
|     if ($(window).width() > 980) { | ||||
|       particlesJS("banner", { | ||||
|         particles: { | ||||
|           number: { | ||||
|             value: 65, | ||||
|             density: { | ||||
|               enable: false, | ||||
|               value_area: 800 | ||||
|             } | ||||
|           }, | ||||
|           color: { | ||||
|             value: "#ff5555" | ||||
|           }, | ||||
|           shape: { | ||||
|             type: "circle", | ||||
|             stroke: { | ||||
|               width: 0, | ||||
|               color: "#000000" | ||||
|             }, | ||||
|             polygon: { | ||||
|               nb_sides: 5 | ||||
|             }, | ||||
|             image: { | ||||
|               src: "img/github.svg", | ||||
|               width: 100, | ||||
|               height: 100 | ||||
|             } | ||||
|           }, | ||||
|           opacity: { | ||||
|             value: 0.6, | ||||
|             random: true, | ||||
|             anim: { | ||||
|               enable: false, | ||||
|               speed: 1, | ||||
|               opacity_min: 0.4, | ||||
|               sync: false | ||||
|             } | ||||
|           }, | ||||
|           size: { | ||||
|             value: 14, | ||||
|             random: true, | ||||
|             anim: { | ||||
|               enable: true, | ||||
|               speed: 6, | ||||
|               size_min: 4, | ||||
|               sync: false | ||||
|             } | ||||
|           }, | ||||
|           line_linked: { | ||||
|             enable: true, | ||||
|             distance: 250, | ||||
|             color: "#ff5555", | ||||
|             opacity: 0.8, | ||||
|             width: 2 | ||||
|           }, | ||||
|           move: { | ||||
|             enable: true, | ||||
|             speed: 0.4, | ||||
|             direction: "none", | ||||
|             random: true, | ||||
|             straight: false, | ||||
|             out_mode: "out", | ||||
|             bounce: false, | ||||
|             attract: { | ||||
|               enable: false, | ||||
|               rotateX: 600, | ||||
|               rotateY: 1200 | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         interactivity: { | ||||
|           detect_on: "canvas", | ||||
|           events: { | ||||
|             onhover: { | ||||
|               enable: true, | ||||
|               mode: "grab" | ||||
|             }, | ||||
|             onclick: { | ||||
|               enable: true, | ||||
|               mode: "push" | ||||
|             }, | ||||
|             resize: true | ||||
|           }, | ||||
|           modes: { | ||||
|             grab: { | ||||
|               distance: 200, | ||||
|               line_linked: { | ||||
|                 opacity: 0.8 | ||||
|               } | ||||
|             }, | ||||
|             bubble: { | ||||
|               distance: 400, | ||||
|               size: 40, | ||||
|               duration: 2, | ||||
|               opacity: 8, | ||||
|               speed: 3 | ||||
|             }, | ||||
|             repulse: { | ||||
|               distance: 200, | ||||
|               duration: 0.4 | ||||
|             }, | ||||
|             push: { | ||||
|               particles_nb: 2 | ||||
|             }, | ||||
|             remove: { | ||||
|               particles_nb: 2 | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         retina_detect: true | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
| })(jQuery); | ||||
|  | ||||
							
								
								
									
										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----- | ||||
|  | ||||
| @ -104,7 +104,7 @@ body.is-loading { | ||||
| .particle { | ||||
|   position: relative; | ||||
|   user-select: none; | ||||
|   background: _palette(accent3, bg); | ||||
|   background: _palette(bg); | ||||
|  | ||||
|   @include breakpoint(medium) { | ||||
|     background: none; | ||||
|  | ||||
| @ -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, | ||||
| @ -232,4 +220,4 @@ header { | ||||
|       display: none; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -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; | ||||
|   } | ||||
| .icon--diamond { | ||||
|   transform: rotate(-45deg); | ||||
|   border-radius: 3px; | ||||
|   border: 2px solid #dfdfdf; | ||||
|   box-sizing: border-box; | ||||
|   height: 5rem; | ||||
|   width: 5rem; | ||||
|  | ||||
|   &.major { | ||||
|     @include vendor('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); | ||||
|   display: inline-flex; | ||||
|   justify-content: center; | ||||
|   align-items: center; | ||||
| } | ||||
|  | ||||
|     &:before { | ||||
|       @include vendor('transform', 'rotate(45deg)'); | ||||
|       display: inline-block; | ||||
|       font-size: 1.5em; | ||||
|     } | ||||
|  | ||||
|     @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,74 +2,74 @@ | ||||
| /* 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; | ||||
|     text-align: left; | ||||
|     width: 50%; | ||||
| .features-icon { | ||||
|   width: 100%; | ||||
|   max-width: 2rem; | ||||
|   margin-right: 2rem; | ||||
|   fill: _palette(accent1, bg); | ||||
| } | ||||
|  | ||||
|     @for $i from 1 through _misc(max-features) { | ||||
|       $j: 0.035 * $i; | ||||
| .features-item { | ||||
|   display: inline-flex; | ||||
|   align-items: start; | ||||
|  | ||||
|       &:nth-child(#{$i}) { | ||||
|         background-color: rgba(0,0,0, $j); | ||||
|       } | ||||
|     } | ||||
|   padding: 4rem 4rem 4rem 3rem; | ||||
|   text-align: left; | ||||
|   width: 50%; | ||||
|  | ||||
|     &:before { | ||||
|       display: block; | ||||
|       color: _palette(accent1, bg); | ||||
|       position: absolute; | ||||
|       left: 1.75em; | ||||
|       top: 2.75em; | ||||
|       font-size: 1.5em; | ||||
|     } | ||||
|   @for $i from 1 through _misc(max-features) { | ||||
|     $j: 0.035 * $i; | ||||
|  | ||||
|     &:nth-child(1) { | ||||
|       border-top-left-radius: 3px; | ||||
|     } | ||||
|  | ||||
|     &:nth-child(2) { | ||||
|       border-top-right-radius: 3px; | ||||
|     } | ||||
|  | ||||
|     &:nth-last-child(1) { | ||||
|       border-bottom-right-radius: 3px; | ||||
|     } | ||||
|  | ||||
|     &:nth-last-child(2) { | ||||
|       border-bottom-left-radius: 3px; | ||||
|     } | ||||
|  | ||||
|     @include breakpoint(medium) { | ||||
|       @include padding(3em, 2em); | ||||
|       text-align: center; | ||||
|  | ||||
|       &:before { | ||||
|         left: 0; | ||||
|         margin: 0 0 (_size(element-margin) * 0.5) 0; | ||||
|         position: relative; | ||||
|         top: 0; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     @include breakpoint(small) { | ||||
|       @include padding(3em, 0); | ||||
|       background-color: transparent !important; | ||||
|       border-top: solid 2px _palette(border); | ||||
|       width: 100%; | ||||
|  | ||||
|       &:first-child { | ||||
|         border-top: 0; | ||||
|       } | ||||
|     &:nth-child(#{$i}) { | ||||
|       background-color: rgba(0,0,0, $j); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
|   &:nth-child(1) { | ||||
|     border-top-left-radius: 3px; | ||||
|   } | ||||
|  | ||||
|   &:nth-child(2) { | ||||
|     border-top-right-radius: 3px; | ||||
|   } | ||||
|  | ||||
|   &:nth-last-child(1) { | ||||
|     border-bottom-right-radius: 3px; | ||||
|   } | ||||
|  | ||||
|   &:nth-last-child(2) { | ||||
|     border-bottom-left-radius: 3px; | ||||
|   } | ||||
|  | ||||
|   @include breakpoint(medium) { | ||||
|     @include padding(3em, 2em); | ||||
|     text-align: center; | ||||
|  | ||||
|     &:before { | ||||
|       left: 0; | ||||
|       margin: 0 0 (_size(element-margin) * 0.5) 0; | ||||
|       position: relative; | ||||
|       top: 0; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   @include breakpoint(small) { | ||||
|     @include padding(3em, 0); | ||||
|     background-color: transparent !important; | ||||
|     border-top: solid 2px _palette(border); | ||||
|     width: 100%; | ||||
|  | ||||
|     &:first-child { | ||||
|       border-top: 0; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,105 +1,86 @@ | ||||
|  | ||||
| /* 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); | ||||
|  | ||||
|   height: 3em; | ||||
|   line-height: 3em; | ||||
|  | ||||
|   padding-left: 1.5rem; | ||||
|  | ||||
|   display: flex; | ||||
|   justify-content: space-between; | ||||
|   align-items: center; | ||||
|  | ||||
|   @include breakpoint(small) { | ||||
|     position: initial; | ||||
|     height: auto; | ||||
|     line-height: inherit; | ||||
|  | ||||
|     display: block; | ||||
|     margin: 0 auto; | ||||
|     text-align: center | ||||
|   } | ||||
| } | ||||
|  | ||||
| .header.alt { | ||||
|   background: transparent; | ||||
|  | ||||
|   h1 { | ||||
|     @include vendor('transition', 'opacity #{_duration(transitions)} ease'); | ||||
|     height: inherit; | ||||
|     left: 1.25em; | ||||
|     line-height: inherit; | ||||
|     position: absolute; | ||||
|     top: 0; | ||||
|  | ||||
|     a { | ||||
|       border: 0; | ||||
|       display: block; | ||||
|       height: inherit; | ||||
|       line-height: inherit; | ||||
|  | ||||
|       @include breakpoint(small) { | ||||
|         font-size: 0.8em; | ||||
|       } | ||||
|     } | ||||
|     @include vendor('pointer-events', 'none'); | ||||
|     opacity: 0; | ||||
|   } | ||||
| } | ||||
|  | ||||
|   nav { | ||||
| .header-home { | ||||
|   @include vendor('transition', 'opacity #{_duration(transitions)} ease'); | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
|  | ||||
|   a { | ||||
|     border: 0; | ||||
|     display: block; | ||||
|     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; | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         &:first-child { | ||||
|           margin-left: 0; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   &.alt { | ||||
|     background: transparent; | ||||
|  | ||||
|     h1 { | ||||
|       @include vendor('pointer-events', 'none'); | ||||
|       opacity: 0; | ||||
|     } | ||||
|   @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)'); | ||||
|   } | ||||
| } | ||||
| @ -11,7 +11,7 @@ | ||||
|       color: _palette($p, fg-bold); | ||||
|     } | ||||
|  | ||||
|      | ||||
|  | ||||
|     .h2, .h3, .h4, .h5, .h6, | ||||
|     h2, h3, h4, h5, h6 { | ||||
|       color: _palette($p, fg-bold); | ||||
| @ -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); | ||||
|   } | ||||
| @ -229,7 +241,7 @@ | ||||
|   &.style5 { | ||||
|     @include wrapper(accent2); | ||||
|   } | ||||
|    | ||||
|  | ||||
|   &.style6 { | ||||
|     @include wrapper(accent4); | ||||
|   } | ||||
| @ -241,4 +253,4 @@ | ||||
|   @include breakpoint(small) { | ||||
|     @include padding(3em, 2em); | ||||
|   } | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -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; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
							
								
								
									
										13
									
								
								src/assets/styles/libs/_drac.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,13 @@ | ||||
| $background: #282a36; | ||||
| $current-line: #44475a; | ||||
| $selection: #44475a; | ||||
| $foreground: #f8f8f2; | ||||
| $dark-foreground: mix($foreground, #000, 90%); | ||||
| $comment: #6272a4; | ||||
| $cyan: #8be9fd; | ||||
| $green: #50fa7b; | ||||
| $orange: #ffb86c; | ||||
| $pink: #ff79c6; | ||||
| $purple: #bd93f9; | ||||
| $red: #ff5555;	 | ||||
| $yellow: #f1fa8c; | ||||
| @ -1,34 +0,0 @@ | ||||
| // 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'); | ||||
| } | ||||
| @ -1,3 +1,5 @@ | ||||
| @import "drac"; | ||||
|  | ||||
| // Misc. | ||||
|   $misc: ( | ||||
|     max-spotlights:   10, | ||||
| @ -16,44 +18,44 @@ | ||||
|   $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), | ||||
|     weight:       400, | ||||
|     weight-bold:    600, | ||||
|     family:           (-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif), | ||||
|     family-fixed:     (SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace), | ||||
|     weight:           400, | ||||
|     weight-bold:      600, | ||||
|     weight-extrabold: 800 | ||||
|   ); | ||||
|  | ||||
| // Palette. | ||||
|   $palette: ( | ||||
|     bg:         #29335C, | ||||
|     fg:         #fff, | ||||
|     fg-bold:      #fff, | ||||
|     fg-light:     rgba(255,255,255,0.5), | ||||
|     border:       #fff, | ||||
|     bg:         $background, | ||||
|     fg:         $foreground, | ||||
|     fg-bold:      $foreground, | ||||
|     fg-light:     rgba($foreground, 0.5), | ||||
|     border:       $foreground, | ||||
|     border-bg:      rgba(144,144,144,0.25), | ||||
|     border2:      #fff, | ||||
|     border2:      $foreground, | ||||
|     border2-bg:     rgba(144,144,144,0.5), | ||||
|  | ||||
|     accent1: ( | ||||
|       bg:       #F3A712, | ||||
|       bg:       $pink, | ||||
|       fg-bold:    #ffffff, | ||||
|       fg:       mix(#F3A712, #ffffff, 25%), | ||||
|       fg-light:   mix(#F3A712, #ffffff, 40%), | ||||
|       fg:       mix($pink, #ffffff, 25%), | ||||
|       fg-light:   mix($pink, #ffffff, 40%), | ||||
|       border:     rgba(0,0,0,0.125), | ||||
|       border-bg:    rgba(255,255,255,0.075), | ||||
|       border2:    rgba(0,0,0,0.25), | ||||
|       border2-bg:   rgba(255,255,255,0.2) | ||||
|     ), | ||||
|      | ||||
|  | ||||
|     accent2: ( | ||||
|       bg:       #ffffff, | ||||
|       fg-bold:    #2E3842, | ||||
|       fg-bold:    #41505E, | ||||
|       fg:       #4E4852, | ||||
|       fg-light:   #8E8892, | ||||
|       border:     #dfdfdf, | ||||
| @ -63,24 +65,35 @@ | ||||
|     ), | ||||
|  | ||||
|     accent3: ( | ||||
|       bg:       #ed4933, | ||||
|       fg-bold:    #ffffff, | ||||
|       fg:       mix(#ed4933, #ffffff, 25%), | ||||
|       fg-light:   mix(#ed4933, #ffffff, 40%), | ||||
|       bg:       $red, | ||||
|       fg-bold:    $foreground, | ||||
|       fg:       #282a36,//mix($nord11, #ffffff, 25%), | ||||
|       fg-light:   #282a36, | ||||
|       border:     rgba(0,0,0,0.125), | ||||
|       border-bg:    rgba(255,255,255,0.075), | ||||
|       border2:    rgba(0,0,0,0.25), | ||||
|       border2-bg:   rgba(255,255,255,0.2) | ||||
|     ), | ||||
|      | ||||
|  | ||||
|     accent4: ( | ||||
|       bg:       #25558C, | ||||
|       fg-bold:    #ffffff, | ||||
|       fg:       mix(#25558C, #ffffff, 25%), | ||||
|       fg-light:   mix(#25558C, #ffffff, 40%), | ||||
|       bg:       mix(#44475a, #000, 50%), | ||||
|       fg-bold:    $foreground, | ||||
|       fg:       $dark-foreground, | ||||
|       fg-light:   $dark-foreground, | ||||
|       border:     rgba(0,0,0,0.125), | ||||
|       border-bg:    rgba(255,255,255,0.075), | ||||
|       border2:    rgba(0,0,0,0.25), | ||||
|       border2-bg:   rgba(255,255,255,0.2) | ||||
|     ) | ||||
|   ); | ||||
|     ), | ||||
|  | ||||
|     accent5: ( | ||||
|       bg:       #e2e2e2, | ||||
|       fg-bold:    #ffffff, | ||||
|       fg:       mix($pink, #ffffff, 25%), | ||||
|       fg-light:   mix($pink, #ffffff, 40%), | ||||
|       border:     rgba(0,0,0,0.125), | ||||
|       border-bg:    rgba(255,255,255,0.075), | ||||
|       border2:    rgba(0,0,0,0.25), | ||||
|       border2-bg:   rgba(255,255,255,0.2) | ||||
|     ), | ||||
|   ); | ||||
|  | ||||
| @ -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. | ||||
| --- | ||||
|  | ||||
