Update to site
This commit is contained in:
parent
3345fa5897
commit
b0bdfe2fe9
244 changed files with 11618 additions and 12 deletions
57
sass/oscailte/_mixins.scss
Normal file
57
sass/oscailte/_mixins.scss
Normal file
|
@ -0,0 +1,57 @@
|
|||
@mixin content-columns($columnCount, $columnGap: $gridGutterWidth) {
|
||||
-webkit-column-count: $columnCount;
|
||||
-moz-column-count: $columnCount;
|
||||
column-count: $columnCount;
|
||||
-webkit-column-gap: $columnGap;
|
||||
-moz-column-gap: $columnGap;
|
||||
column-gap: $columnGap;
|
||||
}
|
||||
|
||||
@mixin transition($transition...) {
|
||||
-webkit-transition: $transition;
|
||||
-moz-transition: $transition;
|
||||
-o-transition: $transition;
|
||||
transition: $transition;
|
||||
}
|
||||
|
||||
@mixin box-sizing($boxmodel) {
|
||||
-webkit-box-sizing: $boxmodel;
|
||||
-moz-box-sizing: $boxmodel;
|
||||
box-sizing: $boxmodel;
|
||||
}
|
||||
|
||||
@mixin border-radius($radius) {
|
||||
-webkit-border-radius: $radius;
|
||||
-moz-border-radius: $radius;
|
||||
border-radius: $radius;
|
||||
}
|
||||
|
||||
@mixin box-shadow($shadow...) {
|
||||
-webkit-box-shadow: $shadow;
|
||||
-moz-box-shadow: $shadow;
|
||||
-ms-box-shadow: $shadow;
|
||||
-o-box-shadow: $shadow;
|
||||
box-shadow: $shadow;
|
||||
}
|
||||
|
||||
@mixin gradient-horizontal($startColor: $button-color, $endColor: darken($button-color, 5%)) {
|
||||
background-color: $endColor;
|
||||
background-image: -moz-linear-gradient(left, $startColor, $endColor); // FF 3.6+
|
||||
background-image: -webkit-gradient(linear, 0 0, 100% 0, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
|
||||
background-image: -webkit-linear-gradient(left, $startColor, $endColor); // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(left, $startColor, $endColor); // Opera 11.10
|
||||
background-image: linear-gradient(to right, $startColor, $endColor); // Standard, IE10
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=1); // IE9 and down
|
||||
}
|
||||
|
||||
@mixin gradient-vertical($startColor: $button-color, $endColor: darken($button-color, 5%)) {
|
||||
background-color: mix($startColor, $endColor, 60%);
|
||||
background-image: -moz-linear-gradient(top, $startColor, $endColor); // FF 3.6+
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
|
||||
background-image: -webkit-linear-gradient(top, $startColor, $endColor); // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(top, $startColor, $endColor); // Opera 11.10
|
||||
background-image: linear-gradient(to bottom, $startColor, $endColor); // Standard, IE10
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=0); // IE9 and down
|
||||
}
|
28
sass/oscailte/_oscailte.scss
Normal file
28
sass/oscailte/_oscailte.scss
Normal file
|
@ -0,0 +1,28 @@
|
|||
@import "variables";
|
||||
@import "mixins";
|
||||
|
||||
@import "../inuitcss/_inuit";
|
||||
@import "../fontawesome/font-awesome";
|
||||
|
||||
@import "base/global";
|
||||
@import "base/grid";
|
||||
@import "base/header";
|
||||
@import "base/navigation";
|
||||
@import "base/footer";
|
||||
@import "base/post";
|
||||
@import "base/archive_list";
|
||||
@import "base/solarized";
|
||||
|
||||
@import "base/sidebar";
|
||||
@import "aside/recent_posts";
|
||||
@import "aside/github";
|
||||
@import "aside/pinboard";
|
||||
@import "aside/social";
|
||||
|
||||
@import "homepage/home";
|
||||
@import "homepage/hero_unit";
|
||||
|
||||
@import "helpers/classes";
|
||||
@import "helpers/grid-fix";
|
||||
|
||||
@import "custom/**/*"
|
64
sass/oscailte/_variables.scss
Normal file
64
sass/oscailte/_variables.scss
Normal file
|
@ -0,0 +1,64 @@
|
|||
$use-grids: true;
|
||||
$site-width: 1100px;
|
||||
$responsive: true;
|
||||
$use-gridfix: true;
|
||||
|
||||
// Fonts & Font Families
|
||||
$serif: Georgia, 'Times New Roman', Times, serif !default;
|
||||
$sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
|
||||
|
||||
// Grays
|
||||
// -------------------------
|
||||
$black: #000 !default;
|
||||
$grayDarker: #222 !default;
|
||||
$grayDark: #333 !default;
|
||||
$gray: #555 !default;
|
||||
$grayLight: #999 !default;
|
||||
$grayLighter: #eee !default;
|
||||
$white: #fff !default;
|
||||
|
||||
// Accent colors
|
||||
// -------------------------
|
||||
$blue: #049cdb !default;
|
||||
$blueDark: #0064cd !default;
|
||||
$green: #46a546 !default;
|
||||
$red: #9d261d !default;
|
||||
$yellow: #ffc40d !default;
|
||||
$orange: #f89406 !default;
|
||||
$pink: #c3325f !default;
|
||||
$purple: #7a43b6 !default;
|
||||
|
||||
// Social network colors
|
||||
// Organised in a key-value pair list for dynamic SASS
|
||||
// Can be infinitely extended by adding more as required
|
||||
// -------------------------
|
||||
$sites:
|
||||
adn #4A484C,
|
||||
dribbble #EA4C89,
|
||||
facebook #3B5998,
|
||||
github #333333,
|
||||
gplus #db4a39,
|
||||
linkedin #4875b4,
|
||||
pinterest #CC2127,
|
||||
stackoverflow #FE7A15,
|
||||
twitter #00a0d1,
|
||||
youtube #CC181E;
|
||||
|
||||
// Site footer
|
||||
// -------------------------
|
||||
$footer-height: 100px;
|
||||
|
||||
// Site colors
|
||||
// -------------------------
|
||||
$primary-color: $blue;
|
||||
$secondary-color: $green;
|
||||
// -------------------------
|
||||
$site-background: #F5F5F5;
|
||||
$header-background: $white;
|
||||
$footer-background: $header-background;
|
||||
$text-color: $grayDarker;
|
||||
$title-color: $primary-color;
|
||||
$link-color: $primary-color;
|
||||
$button-color: $primary-color;
|
||||
$button-text: $white;
|
||||
$navigation-color: $link-color;
|
8
sass/oscailte/aside/_github.scss
Normal file
8
sass/oscailte/aside/_github.scss
Normal file
|
@ -0,0 +1,8 @@
|
|||
#github-repos {
|
||||
li {
|
||||
p {
|
||||
font-size: 0.6em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
16
sass/oscailte/aside/_pinboard.scss
Normal file
16
sass/oscailte/aside/_pinboard.scss
Normal file
|
@ -0,0 +1,16 @@
|
|||
#pinboard {
|
||||
.pin-item > p {
|
||||
margin-bottom: 0;
|
||||
a {
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
&::after {
|
||||
content: ",";
|
||||
}
|
||||
&:last-child::after {
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
0
sass/oscailte/aside/_recent_posts.scss
Normal file
0
sass/oscailte/aside/_recent_posts.scss
Normal file
76
sass/oscailte/aside/_social.scss
Normal file
76
sass/oscailte/aside/_social.scss
Normal file
|
@ -0,0 +1,76 @@
|
|||
.social {
|
||||
ul {
|
||||
@media only screen and (min-width: $lap-start){
|
||||
@include content-columns(2, 10px);
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
@include box-sizing(border-box);
|
||||
background-color: darken($site-background, 5%);
|
||||
border: 1px solid darken($site-background, 10%);
|
||||
border-radius: 4px;
|
||||
color: #222;
|
||||
display: inline-block;
|
||||
font-size: 0.8em;
|
||||
margin-bottom: 7px;
|
||||
padding: 1em;
|
||||
padding-right: 0.5em;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
z-index: 5;
|
||||
@include transition(
|
||||
box-shadow 200ms,
|
||||
color 400ms,
|
||||
transform 400ms
|
||||
);
|
||||
|
||||
&:hover {
|
||||
color: $white !important;
|
||||
text-decoration: none;
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
|
||||
z-index: 7;
|
||||
&::before {
|
||||
border: 1px solid #000;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&::before {
|
||||
background-color: #222;
|
||||
border-radius: 4px;
|
||||
content: "";
|
||||
height: 1px;
|
||||
position: absolute;
|
||||
top: 50%; left: 0%;
|
||||
width: 0;
|
||||
z-index: -1;
|
||||
@include transition(
|
||||
border 200ms,
|
||||
height 200ms 200ms,
|
||||
top 200ms 200ms,
|
||||
width 200ms
|
||||
);
|
||||
}
|
||||
|
||||
i {
|
||||
font-size: 2em;
|
||||
line-height: 0.8em;
|
||||
margin-right: 0.35em;
|
||||
}
|
||||
|
||||
@each $kvp in $sites {
|
||||
&.#{nth($kvp, 1)} {
|
||||
color: nth($kvp, 2);
|
||||
&::before {
|
||||
background-color: nth($kvp, 2);
|
||||
border-color: darken(nth($kvp, 2), 5%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
7
sass/oscailte/base/_archive_list.scss
Normal file
7
sass/oscailte/base/_archive_list.scss
Normal file
|
@ -0,0 +1,7 @@
|
|||
#archive-list {
|
||||
article {
|
||||
h1 {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
21
sass/oscailte/base/_footer.scss
Normal file
21
sass/oscailte/base/_footer.scss
Normal file
|
@ -0,0 +1,21 @@
|
|||
#page-wrap {
|
||||
min-height: 100%;
|
||||
margin-bottom: -$footer-height;
|
||||
&::after {
|
||||
content: "";
|
||||
display: block;
|
||||
height: $footer-height;
|
||||
}
|
||||
}
|
||||
|
||||
body > footer {
|
||||
@include box-shadow(0 0 3px rgba(0, 0, 0, 0.25));
|
||||
background-color: $footer-background;
|
||||
height: $footer-height;
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
margin: 0;
|
||||
padding: 20px 0;
|
||||
}
|
57
sass/oscailte/base/_global.scss
Normal file
57
sass/oscailte/base/_global.scss
Normal file
|
@ -0,0 +1,57 @@
|
|||
body, html {
|
||||
background-color: $site-background;
|
||||
color: $text-color;
|
||||
font-family: $sans-serif;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $link-color;
|
||||
text-decoration: none;
|
||||
&:visited {
|
||||
color: darken($link-color, 10%);
|
||||
}
|
||||
.menu & {
|
||||
color: $link-color;
|
||||
}
|
||||
}
|
||||
|
||||
.gist {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
.title.indent {
|
||||
@media only screen and (max-width: $palm-end){
|
||||
&::before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
&::before {
|
||||
content: "// ";
|
||||
color: $primary-color;
|
||||
}
|
||||
}
|
||||
|
||||
.divider {
|
||||
border: none;
|
||||
border-bottom: 2px solid $primary-color;
|
||||
clear: both;
|
||||
margin: 2em 0;
|
||||
}
|
||||
|
||||
article.post,
|
||||
article.page {
|
||||
img {
|
||||
border: 5px solid #fff;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 3px rgba(0, 0, 0, 0.25);
|
||||
&.right {
|
||||
float: right;
|
||||
margin: 0 0 10px 20px;
|
||||
}
|
||||
&.left {
|
||||
float: left;
|
||||
margin: 0 20px 10px 0;
|
||||
}
|
||||
}
|
||||
}
|
12
sass/oscailte/base/_grid.scss
Normal file
12
sass/oscailte/base/_grid.scss
Normal file
|
@ -0,0 +1,12 @@
|
|||
.grid-wrapper {
|
||||
margin: auto;
|
||||
max-width: $site-width;
|
||||
padding: 0 25px;
|
||||
}
|
||||
|
||||
.grid-center {
|
||||
text-align: center;
|
||||
> .grid__item {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
12
sass/oscailte/base/_header.scss
Normal file
12
sass/oscailte/base/_header.scss
Normal file
|
@ -0,0 +1,12 @@
|
|||
body > header {
|
||||
@include box-shadow(0 0 3px rgba(0, 0, 0, 0.25));
|
||||
background-color: $header-background;
|
||||
margin-bottom: 2em;
|
||||
|
||||
.site-title {
|
||||
color: $grayDarker;
|
||||
font-size: 1.7em;
|
||||
font-weight: bold;
|
||||
line-height: 2.5em;
|
||||
}
|
||||
}
|
106
sass/oscailte/base/_navigation.scss
Normal file
106
sass/oscailte/base/_navigation.scss
Normal file
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
* Navigataur: A pure CSS responsive navigation menu
|
||||
* Author: Mike King (@micjamking)
|
||||
*/
|
||||
|
||||
/*--------------------------------
|
||||
Functional Styles (Required)
|
||||
---------------------------------*/
|
||||
/* Tim Pietrusky advanced checkbox hack (Android <= 4.1.2) */
|
||||
body{ -webkit-animation: bugfix infinite 1s; }
|
||||
@-webkit-keyframes bugfix { from {padding:0;} to {padding:0;} }
|
||||
|
||||
.header { position: relative; }
|
||||
#toggle, .toggle { display: none; }
|
||||
.menu > li { list-style: none; float:left; }
|
||||
|
||||
@media only screen and (max-width: $lap-end){
|
||||
.menu { display: none; opacity: 0; width: 100%; position: absolute; right: 0; }
|
||||
.menu > li { display: block; width: 100%; margin: 0; }
|
||||
.menu > li > a { display: block; width: 100%; text-decoration: none; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
|
||||
.toggle { display: block; position: relative; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
|
||||
#toggle:checked ~ .menu { display: block; opacity: 1; z-index: 999; }
|
||||
}
|
||||
|
||||
|
||||
/*--------------------------------
|
||||
Presentation Styles (Editable)
|
||||
---------------------------------*/
|
||||
.menu {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.menu > li > a{
|
||||
@include box-sizing(border-box);
|
||||
@include transition(all 0.25s linear);
|
||||
display: block;
|
||||
padding: 32px 20px;
|
||||
text-decoration: none;
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.menu > li > a:hover, .menu > li > a:focus{
|
||||
background: $site-background;
|
||||
box-shadow: inset 0px 5px $navigation-color;
|
||||
color: $navigation-color;
|
||||
padding: 40px 20px 24px;
|
||||
}
|
||||
|
||||
.toggle{
|
||||
z-index: 20;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: $lap-end){
|
||||
.menu{
|
||||
background: $white;
|
||||
border-top: 1px solid $navigation-color;
|
||||
border-bottom: 4px solid $navigation-color;
|
||||
}
|
||||
|
||||
.menu, .menu > li, .menu > li > a{
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.menu > li > a{
|
||||
padding: 15px 15px;
|
||||
}
|
||||
|
||||
.menu > li > a:hover, .menu > li > a:focus{
|
||||
background: $grayLighter;
|
||||
box-shadow: inset 5px 0px $navigation-color;
|
||||
padding: 15px 15px 15px 25px;
|
||||
}
|
||||
|
||||
.toggle::after {
|
||||
@include border-radius(2px);
|
||||
@include box-sizing(border-box);
|
||||
@include transition(all 0.5s linear);
|
||||
content: attr(data-open);
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin: 20px 0;
|
||||
padding: 10px 50px;
|
||||
background: $navigation-color;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.toggle:hover::after{
|
||||
background: darken($navigation-color, 7%);
|
||||
}
|
||||
|
||||
#toggle:checked + .toggle::after{
|
||||
content: attr(data-close);
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 479px){
|
||||
.toggle::after {
|
||||
margin: 0 0 20px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
111
sass/oscailte/base/_post.scss
Normal file
111
sass/oscailte/base/_post.scss
Normal file
|
@ -0,0 +1,111 @@
|
|||
$meta-color: lighten($text-color, 20%);
|
||||
|
||||
article {
|
||||
|
||||
blockquote {
|
||||
@extend .clearfix;
|
||||
border-left: 2px solid $primary-color;
|
||||
color: lighten($text-color, 15%);
|
||||
font-family: $serif;
|
||||
font-size: 1.25em;
|
||||
font-style: italic;
|
||||
padding-left: 15px;
|
||||
|
||||
footer {
|
||||
float: right;
|
||||
font-family: $sans-serif;
|
||||
font-size: 0.8em;
|
||||
strong::after {
|
||||
content: " \2014 ";
|
||||
}
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pullquote-left::before, .pullquote-right::before {
|
||||
@media only screen and (max-width: $palm-end){
|
||||
border-top: 1px dotted $primary-color;
|
||||
border-bottom: 1px dotted $primary-color;
|
||||
padding: 0 10px;
|
||||
width: 100%;
|
||||
}
|
||||
border: medium none;
|
||||
color: $primary-color;
|
||||
content: "\201C" attr(data-pullquote) "\201D";
|
||||
float: right;
|
||||
font-family: $serif;
|
||||
font-size: 1.4em;
|
||||
font-style: italic;
|
||||
line-height: 1.45em;
|
||||
margin: 0.3em 0 1em 1.5em;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
top: 7px;
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.tags {
|
||||
@extend .inline;
|
||||
display: inline;
|
||||
li {
|
||||
margin-right: 2px;
|
||||
&::after {
|
||||
content: ",";
|
||||
}
|
||||
&:last-child::after {
|
||||
content: "";
|
||||
}
|
||||
a {
|
||||
color: $meta-color;
|
||||
text-decoration: none;
|
||||
&:hover {text-decoration: underline;}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.meta {
|
||||
$meta-color: $site-background;
|
||||
font-size: 12px;
|
||||
padding: 0 0 5px;
|
||||
> time {
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
// Blog listings, index page
|
||||
&.listing {
|
||||
margin-bottom: 20px;
|
||||
h1 {
|
||||
margin-bottom: 0;
|
||||
a {
|
||||
color: $title-color;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
.entry-content {
|
||||
margin: 10px 0;
|
||||
}
|
||||
+ hr {
|
||||
border: none;
|
||||
border-bottom: 1px solid $primary-color;
|
||||
}
|
||||
}
|
||||
|
||||
&.post {
|
||||
@media only screen and (max-width: $palm-end){
|
||||
.tags {
|
||||
clear: both;
|
||||
margin-top: 7px;
|
||||
}
|
||||
}
|
||||
h1 {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.meta {
|
||||
border-bottom: 1px solid $primary-color;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
46
sass/oscailte/base/_sidebar.scss
Normal file
46
sass/oscailte/base/_sidebar.scss
Normal file
|
@ -0,0 +1,46 @@
|
|||
// #sidebar {
|
||||
// .title {
|
||||
// border-bottom: 1px solid $blue;
|
||||
// color: $grayDark;
|
||||
// margin: 1em 0 0.5em;
|
||||
// padding-bottom: 5px;
|
||||
// }
|
||||
// .social {
|
||||
// ul {
|
||||
// @include content-columns(2, 10px);
|
||||
// }
|
||||
// }
|
||||
|
||||
// @media only screen and (min-width: $desk-start){
|
||||
// section:first-child {
|
||||
// h3 {margin-top: 0;}
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
.aside-module {
|
||||
@media only screen and (min-width: $desk-start){
|
||||
&:first-child {
|
||||
.title {margin-top: 0;}
|
||||
}
|
||||
}
|
||||
.title {
|
||||
border-bottom: 1px solid $blue;
|
||||
color: $grayDark;
|
||||
margin: 1em 0 0.5em;
|
||||
padding-bottom: 5px;
|
||||
|
||||
.btn {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
padding: 5px 10px;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.loading {
|
||||
display: block;
|
||||
font-size: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
333
sass/oscailte/base/_solarized.scss
Normal file
333
sass/oscailte/base/_solarized.scss
Normal file
|
@ -0,0 +1,333 @@
|
|||
// This file is just a butchered version fo the one included in the default Octopress theme.
|
||||
// It could most definitely do with some cleaning up in the future.
|
||||
|
||||
@mixin selection($bg, $color: inherit, $text-shadow: none){
|
||||
* {
|
||||
&::-moz-selection { background: $bg; color: $color; text-shadow: $text-shadow; }
|
||||
&::-webkit-selection { background: $bg; color: $color; text-shadow: $text-shadow; }
|
||||
&::selection { background: $bg; color: $color; text-shadow: $text-shadow; }
|
||||
}
|
||||
}
|
||||
|
||||
$base03: #002b36 !default; //darkest blue
|
||||
$base02: #073642 !default; //dark blue
|
||||
$base01: #586e75 !default; //darkest gray
|
||||
$base00: #657b83 !default; //dark gray
|
||||
$base0: #839496 !default; //medium gray
|
||||
$base1: #93a1a1 !default; //medium light gray
|
||||
$base2: #eee8d5 !default; //cream
|
||||
$base3: #fdf6e3 !default; //white
|
||||
$solar-yellow: #b58900 !default;
|
||||
$solar-orange: #cb4b16 !default;
|
||||
$solar-red: #dc322f !default;
|
||||
$solar-magenta: #d33682 !default;
|
||||
$solar-violet: #6c71c4 !default;
|
||||
$solar-blue: #268bd2 !default;
|
||||
$solar-cyan: #2aa198 !default;
|
||||
$solar-green: #859900 !default;
|
||||
|
||||
$solarized: dark !default;
|
||||
|
||||
@if $solarized == light {
|
||||
|
||||
$_base03: $base03;
|
||||
$_base02: $base02;
|
||||
$_base01: $base01;
|
||||
$_base00: $base00;
|
||||
$_base0: $base0;
|
||||
$_base1: $base1;
|
||||
$_base2: $base2;
|
||||
$_base3: $base3;
|
||||
|
||||
$base03: $_base3;
|
||||
$base02: $_base2;
|
||||
$base01: $_base1;
|
||||
$base00: $_base0;
|
||||
$base0: $_base00;
|
||||
$base1: $_base01;
|
||||
$base2: $_base02;
|
||||
$base3: $_base03;
|
||||
}
|
||||
|
||||
/* non highlighted code colors */
|
||||
$pre-bg: $base03 !default;
|
||||
$pre-border: darken($base02, 5) !default;
|
||||
$pre-color: $base1 !default;
|
||||
|
||||
$noise-bg: image-url('noise.png') top left !default;
|
||||
$sans: "Helvetica Neue", Arial, sans-serif !default;
|
||||
$mono: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace !default;
|
||||
.sans { font-family: $sans; }
|
||||
.mono { font-family: $mono; }
|
||||
|
||||
.highlight {
|
||||
table {margin-bottom: 0;}
|
||||
.gutter, .code {
|
||||
padding: 0;
|
||||
}
|
||||
.gutter {
|
||||
.line-number {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.highlight, html .gist .gist-file .gist-syntax .gist-highlight {
|
||||
table td.code { width: 100%; }
|
||||
border: 1px solid $pre-border !important;
|
||||
}
|
||||
.highlight .line-numbers, html .gist .gist-file .gist-syntax .highlight .line_numbers {
|
||||
text-align: right;
|
||||
font-size: 13px;
|
||||
line-height: 1.45em;
|
||||
@if $solarized == light {
|
||||
background: lighten($base03, 1) $noise-bg !important;
|
||||
border-right: 1px solid darken($base02, 2) !important;
|
||||
@include box-shadow(lighten($base03, 2) -1px 0 inset);
|
||||
text-shadow: lighten($base02, 2) 0 -1px;
|
||||
} @else {
|
||||
background: $base02 $noise-bg !important;
|
||||
border-right: 1px solid darken($base03, 2) !important;
|
||||
@include box-shadow(lighten($base02, 2) -1px 0 inset);
|
||||
text-shadow: darken($base02, 10) 0 -1px;
|
||||
}
|
||||
span { color: $base01 !important; }
|
||||
padding: .8em !important;
|
||||
@include border-radius(0);
|
||||
}
|
||||
|
||||
figure.code, .gist-file, pre {
|
||||
@include box-shadow(rgba(#000, .06) 0 0 10px);
|
||||
.highlight pre { @include box-shadow(none); }
|
||||
}
|
||||
|
||||
.gist .highlight, figure.code .highlight {
|
||||
@include selection(adjust-color($base03, $lightness: 23%, $saturation: -65%), $text-shadow: $base03 0 1px);
|
||||
}
|
||||
html .gist .gist-file {
|
||||
margin-bottom: 1.8em;
|
||||
position: relative;
|
||||
border: none;
|
||||
padding-top: image-height("code_bg.png") !important;
|
||||
.highlight {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.gist-syntax {
|
||||
border-bottom: 0 !important;
|
||||
background: none !important;
|
||||
.gist-highlight {
|
||||
background: $base03 !important;
|
||||
}
|
||||
.highlight pre {
|
||||
@extend .pre-code;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.gist-meta {
|
||||
padding: .6em 0.8em;
|
||||
border: 1px solid lighten($base02, 2) !important;
|
||||
color: $base01;
|
||||
font-size: .7em !important;
|
||||
@if $solarized == light {
|
||||
background: lighten($base03, 2) $noise-bg;
|
||||
border: 1px solid $pre-border !important;
|
||||
border-top: 1px solid lighten($base03, 2) !important;
|
||||
} @else {
|
||||
background: $base02 $noise-bg;
|
||||
}
|
||||
@extend .sans;
|
||||
line-height: 1.5em;
|
||||
a {
|
||||
color: mix($base1, $base01) !important;
|
||||
&:hover { color: $base1 !important; }
|
||||
}
|
||||
a[href*='#file'] {
|
||||
position: absolute; top: 0; left:0; right:-10px;
|
||||
color: #474747 !important;
|
||||
@extend .code-title;
|
||||
&:hover { color: $link-color !important; }
|
||||
}
|
||||
a[href*=raw]{
|
||||
@extend .download-source;
|
||||
top: .4em;
|
||||
}
|
||||
}
|
||||
}
|
||||
pre {
|
||||
background: $pre-bg $noise-bg;
|
||||
@include border-radius(.4em);
|
||||
@extend .mono;
|
||||
border: 1px solid $pre-border;
|
||||
line-height: 1.45em;
|
||||
font-size: 13px;
|
||||
margin-bottom: 2.1em;
|
||||
padding: .8em 1em;
|
||||
color: $pre-color;
|
||||
overflow: auto;
|
||||
}
|
||||
h3.filename {
|
||||
@extend .code-title;
|
||||
+ pre { @include border-radius(0px); }
|
||||
}
|
||||
|
||||
p, li {
|
||||
code {
|
||||
@extend .mono;
|
||||
display: inline-block;
|
||||
white-space: no-wrap;
|
||||
background: #fff;
|
||||
font-size: .8em;
|
||||
line-height: 1.5em;
|
||||
color: #555;
|
||||
border: 1px solid #ddd;
|
||||
@include border-radius(.4em);
|
||||
padding: 0 .3em;
|
||||
margin: -1px 0;
|
||||
}
|
||||
pre code { font-size: 1em !important; background: none; border: none; }
|
||||
}
|
||||
|
||||
.pre-code {
|
||||
font-family: $mono !important;
|
||||
overflow: scroll;
|
||||
overflow-y: hidden;
|
||||
display: block;
|
||||
padding: .8em;
|
||||
overflow-x: auto;
|
||||
line-height: 1.45em;
|
||||
background: $base03 $noise-bg !important;
|
||||
color: $base1 !important;
|
||||
span { color: $base1 !important; }
|
||||
span { font-style: normal !important; font-weight: normal !important; }
|
||||
|
||||
.c { color: $base01 !important; font-style: italic !important; } /* Comment */
|
||||
.cm { color: $base01 !important; font-style: italic !important; } /* Comment.Multiline */
|
||||
.cp { color: $base01 !important; font-style: italic !important; } /* Comment.Preproc */
|
||||
.c1 { color: $base01 !important; font-style: italic !important; } /* Comment.Single */
|
||||
.cs { color: $base01 !important; font-weight: bold !important; font-style: italic !important; } /* Comment.Special */
|
||||
.err { color: $solar-red !important; background: none !important; } /* Error */
|
||||
.k { color: $solar-orange !important; } /* Keyword */
|
||||
.o { color: $base1 !important; font-weight: bold !important; } /* Operator */
|
||||
.p { color: $base1 !important; } /* Operator */
|
||||
.ow { color: $solar-cyan !important; font-weight: bold !important; } /* Operator.Word */
|
||||
.gd { color: $base1 !important; background-color: mix($solar-red, $base03, 25%) !important; display: inline-block; } /* Generic.Deleted */
|
||||
.gd .x { color: $base1 !important; background-color: mix($solar-red, $base03, 35%) !important; display: inline-block; } /* Generic.Deleted.Specific */
|
||||
.ge { color: $base1 !important; font-style: italic !important; } /* Generic.Emph */
|
||||
//.gr { color: #aa0000 } /* Generic.Error */
|
||||
.gh { color: $base01 !important; } /* Generic.Heading */
|
||||
.gi { color: $base1 !important; background-color: mix($solar-green, $base03, 20%) !important; display: inline-block; } /* Generic.Inserted */
|
||||
.gi .x { color: $base1 !important; background-color: mix($solar-green, $base03, 40%) !important; display: inline-block; } /* Generic.Inserted.Specific */
|
||||
//.go { color: #888888 } /* Generic.Output */
|
||||
//.gp { color: #555555 } /* Generic.Prompt */
|
||||
.gs { color: $base1 !important; font-weight: bold !important; } /* Generic.Strong */
|
||||
.gu { color: $solar-violet !important; } /* Generic.Subheading */
|
||||
//.gt { color: #aa0000 } /* Generic.Traceback */
|
||||
.kc { color: $solar-green !important; font-weight: bold !important; } /* Keyword.Constant */
|
||||
.kd { color: $solar-blue !important; } /* Keyword.Declaration */
|
||||
.kp { color: $solar-orange !important; font-weight: bold !important; } /* Keyword.Pseudo */
|
||||
.kr { color: $solar-magenta !important; font-weight: bold !important; } /* Keyword.Reserved */
|
||||
.kt { color: $solar-cyan !important; } /* Keyword.Type */
|
||||
.n { color: $solar-blue !important; }
|
||||
.na { color: $solar-blue !important; } /* Name.Attribute */
|
||||
.nb { color: $solar-green !important; } /* Name.Builtin */
|
||||
.nc { color: $solar-magenta !important;} /* Name.Class */
|
||||
.no { color: $solar-yellow !important; } /* Name.Constant */
|
||||
//.ni { color: #800080 } /* Name.Entity */
|
||||
.nl { color: $solar-green !important; }
|
||||
.ne { color: $solar-blue !important; font-weight: bold !important; } /* Name.Exception */
|
||||
.nf { color: $solar-blue !important; font-weight: bold !important; } /* Name.Function */
|
||||
.nn { color: $solar-yellow !important; } /* Name.Namespace */
|
||||
.nt { color: $solar-blue !important; font-weight: bold !important; } /* Name.Tag */
|
||||
.nx { color: $solar-yellow !Important; }
|
||||
//.bp { color: #999999 } /* Name.Builtin.Pseudo */
|
||||
//.vc { color: #008080 } /* Name.Variable.Class */
|
||||
.vg { color: $solar-blue !important; } /* Name.Variable.Global */
|
||||
.vi { color: $solar-blue !important; } /* Name.Variable.Instance */
|
||||
.nv { color: $solar-blue !important; } /* Name.Variable */
|
||||
//.w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.mf { color: $solar-cyan !important; } /* Literal.Number.Float */
|
||||
.m { color: $solar-cyan !important; } /* Literal.Number */
|
||||
.mh { color: $solar-cyan !important; } /* Literal.Number.Hex */
|
||||
.mi { color: $solar-cyan !important; } /* Literal.Number.Integer */
|
||||
//.mo { color: #009999 } /* Literal.Number.Oct */
|
||||
.s { color: $solar-cyan !important; } /* Literal.String */
|
||||
//.sb { color: #d14 } /* Literal.String.Backtick */
|
||||
//.sc { color: #d14 } /* Literal.String.Char */
|
||||
.sd { color: $solar-cyan !important; } /* Literal.String.Doc */
|
||||
.s2 { color: $solar-cyan !important; } /* Literal.String.Double */
|
||||
.se { color: $solar-red !important; } /* Literal.String.Escape */
|
||||
//.sh { color: #d14 } /* Literal.String.Heredoc */
|
||||
.si { color: $solar-blue !important; } /* Literal.String.Interpol */
|
||||
//.sx { color: #d14 } /* Literal.String.Other */
|
||||
.sr { color: $solar-cyan !important; } /* Literal.String.Regex */
|
||||
.s1 { color: $solar-cyan !important; } /* Literal.String.Single */
|
||||
//.ss { color: #990073 } /* Literal.String.Symbol */
|
||||
//.il { color: #009999 } /* Literal.Number.Integer.Long */
|
||||
div { .gd, .gd .x, .gi, .gi .x { display: inline-block; width: 100%; }}
|
||||
}
|
||||
|
||||
.highlight, .gist-highlight {
|
||||
pre { background: none; @include border-radius(0px); border: none; padding: 0; margin-bottom: 0; }
|
||||
margin-bottom: 1.8em;
|
||||
background: $base03;
|
||||
overflow-y: hidden;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
$solar-scroll-bg: rgba(#fff, .15);
|
||||
$solar-scroll-thumb: rgba(#fff, .2);
|
||||
@if $solarized == light {
|
||||
$solar-scroll-bg: rgba(#000, .15);
|
||||
$solar-scroll-thumb: rgba(#000, .15);
|
||||
}
|
||||
|
||||
pre, .highlight, .gist-highlight {
|
||||
&::-webkit-scrollbar { height: .5em; background: $solar-scroll-bg; }
|
||||
&::-webkit-scrollbar-thumb:horizontal { background: $solar-scroll-thumb; -webkit-border-radius: 4px; border-radius: 4px }
|
||||
}
|
||||
|
||||
.highlight code {
|
||||
@extend .pre-code; background: #000;
|
||||
}
|
||||
figure.code {
|
||||
background: none;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
margin-bottom: 1.5em;
|
||||
pre { margin-bottom: 0; }
|
||||
figcaption {
|
||||
position: relative;
|
||||
@extend .code-title;
|
||||
a { @extend .download-source; }
|
||||
}
|
||||
.highlight {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.code-title {
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
line-height: 2em;
|
||||
text-shadow: #cbcccc 0 1px 0;
|
||||
color: #474747;
|
||||
font-weight: normal;
|
||||
margin-bottom: 0;
|
||||
@include border-radius(5px 5px 0 0);
|
||||
font-family: "Helvetica Neue", Arial, "Lucida Grande", "Lucida Sans Unicode", Lucida, sans-serif;
|
||||
background: #aaaaaa image-url("code_bg.png") top repeat-x;
|
||||
border: 1px solid #565656;
|
||||
border-top-color: #cbcbcb;
|
||||
border-left-color: #a5a5a5;
|
||||
border-right-color: #a5a5a5;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.download-source {
|
||||
position: absolute; right: .8em;
|
||||
color: #666 !important;
|
||||
z-index: 1;
|
||||
font-size: 13px;
|
||||
text-shadow: #cbcccc 0 1px 0;
|
||||
padding-left: 3em;
|
||||
}
|
6
sass/oscailte/custom/_README.scss
Normal file
6
sass/oscailte/custom/_README.scss
Normal file
|
@ -0,0 +1,6 @@
|
|||
// You can freely create SCSS files within this Custom directory
|
||||
// and they will be imported into the end of the theme's output CSS.
|
||||
// The directory is loaded to increase abstraction and reduce the amount of
|
||||
// changes to be made to the Oscailte theme itself.
|
||||
|
||||
// THESE FILES AREA LOADED ALPHABETICALLY
|
60
sass/oscailte/helpers/_classes.scss
Normal file
60
sass/oscailte/helpers/_classes.scss
Normal file
|
@ -0,0 +1,60 @@
|
|||
.pull-left {float: left;}
|
||||
.pull-right {float: right;}
|
||||
|
||||
.clearfix {
|
||||
*zoom: 1;
|
||||
&::before,
|
||||
&::after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0;
|
||||
}
|
||||
&::after {
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
&.unstyled {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&.inline {
|
||||
@extend .unstyled;
|
||||
list-style-type: none;
|
||||
> li {display: inline;}
|
||||
}
|
||||
|
||||
&.divided {
|
||||
@extend .unstyled;
|
||||
> li {
|
||||
border-top: 1px solid lighten($site-background, 5%);
|
||||
border-bottom: 1px solid darken($site-background, 5%);
|
||||
padding: 0.5em 0;
|
||||
|
||||
&:first-child {
|
||||
border-top: none;
|
||||
padding-top: 0;
|
||||
}
|
||||
&:last-child {border-bottom: none;}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
@include gradient-vertical;
|
||||
@include box-shadow(0 0 3px rgba(0, 0, 0, 0.25));
|
||||
border-radius: 3px;
|
||||
color: $button-text;
|
||||
display: inline-block;
|
||||
padding: 7px 15px;
|
||||
text-decoration: none;
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
&:visited {
|
||||
color: $button-text;
|
||||
}
|
||||
}
|
76
sass/oscailte/helpers/_grid-fix.scss
Normal file
76
sass/oscailte/helpers/_grid-fix.scss
Normal file
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
* A modified version of @kevva solution https://github.com/csswizardry/inuit.css/issues/170#issuecomment-14859371
|
||||
* Letter spacing hack to remove the necessity of using empty HTML comments between columns.
|
||||
*
|
||||
*/
|
||||
|
||||
@if $use-gridfix == true {
|
||||
.grid {
|
||||
letter-spacing: -1rem;
|
||||
}
|
||||
|
||||
/* Opera hack */
|
||||
.opera:-o-prefocus,
|
||||
.grid {
|
||||
word-spacing: -1rem;
|
||||
}
|
||||
|
||||
.grid__item {
|
||||
letter-spacing: normal;
|
||||
word-spacing: normal;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* An implementation of flexbox which can be applied to the grid items
|
||||
*
|
||||
*/
|
||||
|
||||
@media only screen and (min-width: $lap-start){
|
||||
.flex {
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-direction: normal;
|
||||
-moz-box-direction: normal;
|
||||
-webkit-box-orient: horizontal;
|
||||
-moz-box-orient: horizontal;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-flex-wrap: nowrap;
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
-webkit-box-pack: start;
|
||||
-moz-box-pack: start;
|
||||
-webkit-justify-content: flex-start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
-webkit-align-content: stretch;
|
||||
-ms-flex-line-pack: stretch;
|
||||
align-content: stretch;
|
||||
-webkit-box-align: start;
|
||||
-moz-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
-ms-flex-align: start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.flex__item {
|
||||
-webkit-box-ordinal-group: 1;
|
||||
-moz-box-ordinal-group: 1;
|
||||
-webkit-order: 0;
|
||||
-ms-flex-order: 0;
|
||||
order: 0;
|
||||
-webkit-box-flex: 0;
|
||||
-moz-box-flex: 0;
|
||||
-webkit-flex: 0 1 auto;
|
||||
-ms-flex: 0 1 auto;
|
||||
flex: 0 1 auto;
|
||||
-webkit-align-self: center;
|
||||
-ms-flex-item-align: center;
|
||||
align-self: center;
|
||||
}
|
||||
}
|
76
sass/oscailte/homepage/_hero_unit.scss
Normal file
76
sass/oscailte/homepage/_hero_unit.scss
Normal file
|
@ -0,0 +1,76 @@
|
|||
.hero {
|
||||
background-color: $grayDarker;
|
||||
background-position: 0 50%;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
border-bottom: 1px solid $white;
|
||||
color: $white;
|
||||
font-weight: bold;
|
||||
margin-top: -2em;
|
||||
margin-bottom: 1.5em;
|
||||
padding: 50px 0;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
background: url("../images/matrix.png") 0 0 rgba(0, 0, 0, 0.35);
|
||||
box-shadow: inset 0 0 5px $black;
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0; right: 0; bottom: 0; left: 0;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
> .grid-wrapper {
|
||||
position: relative;
|
||||
z-index: 7;
|
||||
}
|
||||
|
||||
.credit {
|
||||
font-size: 0.75em;
|
||||
font-style: italic;
|
||||
position: absolute;
|
||||
bottom: 0; right: 10px;
|
||||
z-index: 7;
|
||||
a {
|
||||
border-bottom: 1px solid;
|
||||
color: $white;
|
||||
text-decoration: none;
|
||||
}
|
||||
.licence {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.avatar {
|
||||
@media only screen and (max-width: $lap-end){
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
text-align: center;
|
||||
img {
|
||||
@include border-radius(100%);
|
||||
border: 10px solid $primary-color;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3.5em;
|
||||
line-height: 1em;
|
||||
text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
hr {
|
||||
@extend .divider;
|
||||
box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
p {
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
small {
|
||||
color: $grayLighter;
|
||||
font-size: .65em;
|
||||
}
|
||||
}
|
||||
}
|
44
sass/oscailte/homepage/_home.scss
Normal file
44
sass/oscailte/homepage/_home.scss
Normal file
|
@ -0,0 +1,44 @@
|
|||
.usp {
|
||||
text-align: center;
|
||||
|
||||
@media only screen and (min-width: $lap-start) and (max-width: $lap-end){
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
i {
|
||||
@include border-radius(50%);
|
||||
border: 10px solid $blue;
|
||||
color: $grayDarker;
|
||||
display: inline-block;
|
||||
font-size: 6em;
|
||||
height: 1.85em;
|
||||
line-height: normal;
|
||||
padding: 0.3em;
|
||||
width: 1.85em;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
color: $grayDarker;
|
||||
font-size: 1.1em;
|
||||
line-height: 3em;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
text-transform: capitalize;
|
||||
|
||||
+ hr {
|
||||
margin: 0;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
@extend .divider;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue