This commit is contained in:
Loïc Guibert
2022-09-30 20:02:02 +01:00
commit 66dafc36c3
2561 changed files with 454489 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
// Core
@import "core";
// Breakpoints
@import "breakpoints";
// Layout
@import "layout";
// Typography
@import "typography";
// Nav
@import "nav";

View File

@@ -0,0 +1,16 @@
// Media Device Breakpoints
$large-desktop-container: 75.000em !default;
$desktop-container: 60.000em !default;
$tablet-container: 48.000em !default;
$large-mobile-container: 30.000em !default;
$mobile-container: 100% !default;
// Breakpoint Variables For Particles
$media: "all" !default;
$mobile-only: "#{$media} and (max-width:#{$tablet-container - 0.062})" !default;
$no-mobile: "#{$media} and (min-width:#{$tablet-container})" !default;
$small-mobile-range: "#{$media} and (max-width:#{$large-mobile-container})" !default;
$large-mobile-range: "#{$media} and (min-width:#{$large-mobile-container + 0.063}) and (max-width:#{$tablet-container - 0.062})" !default;
$tablet-range: "#{$media} and (min-width:#{$tablet-container}) and (max-width:#{$desktop-container - 0.062})" !default;
$desktop-range: "#{$media} and (min-width:#{$desktop-container}) and (max-width:#{$large-desktop-container - 0.062})" !default;
$large-desktop-range: "#{$media} and (min-width:#{$large-desktop-container})" !default;

View File

@@ -0,0 +1,2 @@
// Border Radius
$core-border-radius: rem(3) !default;

View File

@@ -0,0 +1,8 @@
// Content Block Spacing Variables
$content-margin: 0.625rem !default;
$content-padding: 0.938rem !default;
// Fixed Block Variables
$fixed-block-full: percentage(1/4) !default;
$fixed-block-desktop: percentage(1/3) !default;
$fixed-block-tablet: percentage(1/2) !default;

View File

@@ -0,0 +1,3 @@
// Dropdowns
$dropdown-width: 140px !default;
$flyout-width: 140px !default;

View File

@@ -0,0 +1,14 @@
// Base Sizes
$core-font-size: .9rem !default;
$core-line-height: 1.5 !default;
// Heading Sizes
$h1-font-size: $core-font-size + 2.20 !default;
$h2-font-size: $core-font-size + 1.50 !default;
$h3-font-size: $core-font-size + 1.10 !default;
$h4-font-size: $core-font-size + 0.75 !default;
$h5-font-size: $core-font-size + 0.35 !default;
$h6-font-size: $core-font-size - 0.15 !default;
// Spacing
$leading-margin: $core-line-height * 1rem !default;

View File

@@ -0,0 +1,5 @@
// Colors
@import "colors";
// Variables
@import "variables";

View File

@@ -0,0 +1,15 @@
// Core
$white: #ffffff;
$black: #000000;
$light-gray: #dddddd;
$core-border-color: $light-gray;
$core-border-color-hover: darken($core-border-color, 10);
$code-text: #c7254e;
$code-bg: #f9f2f4;
$pre-text: #237794;
$pre-bg: #f6f6f6;
// Shadows
$core-box-shadow: inset 0 1px 3px hsla(0, 0%, 0%, 0.06);

View File

@@ -0,0 +1,22 @@
// Sizes
$header-height: 5rem;
$footer-height: 6rem;
$border-radius: 4px;
// Font Weights
$font-weight-bold: 600;
$font-weight-regular: 400;
$font-weight-light:300;
// Global Paddings
$padding-default: 1.5rem;
$padding-horiz: 7rem;
$padding-vert: 3rem;
//Forms
$form-label-width: 30%;
$form-border-radius: 4px;
$form-border-width: 1px;
$form-label-pad: 5px 0 5px 3rem;
$form-input-pad: 5px 10px;
$form-select-pad: 5px 30px 5px 10px;

View File

@@ -0,0 +1,27 @@
// REQUIRED DEPENDENCIES - DO NOT CHANGE
// Load Third Party Libraries
@import "vendor/bourbon/bourbon";
// Load Nucleus Configuration
@import "configuration/nucleus/base";
// Load Nucleus Mixins and Functions
@import "nucleus/functions/base";
@import "nucleus/mixins/base";
//-------------------------------------------
// LOAD NUCLEUS COMPONENTS
// Core
@import "nucleus/core";
// Flex
@import "nucleus/flex";
// Typography
@import "nucleus/typography";
// Forms
@import "nucleus/forms";

View File

@@ -0,0 +1,217 @@
*, *::before, *::after {
@include box-sizing(border-box);
}
@-webkit-viewport{width:device-width}
@-moz-viewport{width:device-width}
@-ms-viewport{width:device-width}
@-o-viewport{width:device-width}
@viewport{width:device-width}
html {
font-size: 100%;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline;
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a {
background: transparent;
text-decoration: none;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
mark {
background: #ff0;
color: #000;
}
sub,
sup {
font-size: $core-font-size - 0.250;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
max-width: 100%;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-size: $core-font-size;
}
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0;
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
legend {
border: 0;
padding: 0;
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
border-collapse: collapse;
border-spacing: 0;
table-layout: fixed;
width: 100%;
}
tr, td, th {
vertical-align: middle;
}
th, td {
padding: ($leading-margin / 4) 0;
}
th {
text-align: left;
}

View File

@@ -0,0 +1,195 @@
// Page Container
.container {
width: $large-desktop-container;
margin: 0 auto;
padding: 0;
@include breakpoint(desktop-range) {
width: $desktop-container;
}
@include breakpoint(tablet-range) {
width: $tablet-container;
}
@include breakpoint(large-mobile-range) {
width: $large-mobile-container;
}
@include breakpoint(small-mobile-range) {
width: $mobile-container;
}
}
// Grid Row and Column Setup
.grid {
@include display(flex);
@include flex-flow(row);
list-style: none;
margin: 0;
padding: 0;
@include breakpoint(mobile-only) {
@include flex-flow(row wrap);
}
}
.block {
@include flex(1);
@include breakpoint(mobile-only) {
@include flex(0 100%);
}
}
// Content Block Spacing
.content {
margin: $content-margin;
padding: $content-padding;
}
body [class*="size-"] {
@include breakpoint(mobile-only) {
@include flex(0 100%);
}
}
// Custom Size Modifiers
.size-1-2 {
@include flex(0 percentage(1/2));
}
.size-1-3 {
@include flex(0 percentage(1/3));
}
.size-1-4 {
@include flex(0 percentage(1/4));
}
.size-1-5 {
@include flex(0 percentage(1/5));
}
.size-1-6 {
@include flex(0 percentage(1/6));
}
.size-1-7 {
@include flex(0 percentage(1/7));
}
.size-1-8 {
@include flex(0 percentage(1/8));
}
.size-1-9 {
@include flex(0 percentage(1/9));
}
.size-1-10 {
@include flex(0 percentage(1/10));
}
.size-1-11 {
@include flex(0 percentage(1/11));
}
.size-1-12 {
@include flex(0 percentage(1/12));
}
@include breakpoint(tablet-range) {
.size-tablet-1-2 {
@include flex(0 percentage(1/2));
}
.size-tablet-1-3 {
@include flex(0 percentage(1/3));
}
.size-tablet-1-4 {
@include flex(0 percentage(1/4));
}
.size-tablet-1-5 {
@include flex(0 percentage(1/5));
}
.size-tablet-1-6 {
@include flex(0 percentage(1/6));
}
.size-tablet-1-7 {
@include flex(0 percentage(1/7));
}
.size-tablet-1-8 {
@include flex(0 percentage(1/8));
}
.size-tablet-1-9 {
@include flex(0 percentage(1/9));
}
.size-tablet-1-10 {
@include flex(0 percentage(1/10));
}
.size-tablet-1-11 {
@include flex(0 percentage(1/11));
}
.size-tablet-1-12 {
@include flex(0 percentage(1/12));
}
}
// Fix for Firefox versions 27 and below
@include breakpoint(mobile-only) {
@supports not (flex-wrap: wrap) {
.grid {
display: block;
@include flex-wrap(inherit);
}
.block {
display: block;
@include flex(inherit);
}
}
}
// Reordering
.first-block {
-webkit-box-ordinal-group: 0;
-webkit-order: -1;
-ms-flex-order: -1;
order: -1;
}
.last-block {
-webkit-box-ordinal-group: 2;
-webkit-order: 1;
-ms-flex-order: 1;
order: 1;
}
// Fixed Grid Style
.fixed-blocks {
@include flex-flow(row wrap);
.block {
@include flex(inherit);
width: $fixed-block-full;
@include breakpoint(desktop-range) {
width: $fixed-block-desktop;
}
@include breakpoint(tablet-range) {
width: $fixed-block-tablet;
}
@include breakpoint(mobile-only) {
width: 100%;
}
}
}
// Fix for browsers that don't support flex-wrap
@supports not (flex-wrap: wrap) {
.fixed-blocks {
display: block;
@include flex-flow(inherit);
}
}

View File

@@ -0,0 +1,62 @@
fieldset {
border: 0;
padding: $content-padding;
margin: 0 0 $leading-margin 0;
}
input,
label,
select {
display: block;
}
label {
margin-bottom: $leading-margin / 4;
&.required:after {
content: "*";
}
abbr {
display: none;
}
}
textarea, #{$all-text-inputs}, select[multiple=multiple] {
@include transition(border-color);
border-radius: $core-border-radius;
padding: ($leading-margin / 4) ($leading-margin / 4);
width: 100%;
&:focus {
outline: none;
}
}
textarea {
resize: vertical;
}
input[type="checkbox"], input[type="radio"] {
display: inline;
margin-right: $leading-margin / 4;
}
input[type="file"] {
width: 100%;
}
select {
width: auto;
max-width: 100%;
margin-bottom: $leading-margin;
}
button,
input[type="submit"] {
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
border: inherit;
}

View File

@@ -0,0 +1,89 @@
// Body Base
body {
font-size: $core-font-size;
line-height: $core-line-height;
}
// Headings
h1, h2, h3, h4, h5, h6 {
margin: $leading-margin 0 $leading-margin / 2 0;
text-rendering: optimizeLegibility;
}
h1 {
font-size: $h1-font-size;
}
h2 {
font-size: $h2-font-size;
}
h3 {
font-size: $h3-font-size;
}
h4 {
font-size: $h4-font-size;
}
h5 {
font-size: $h5-font-size;
}
h6 {
font-size: $h6-font-size;
}
// Paragraph
p {
margin: $leading-margin / 2 0 $leading-margin ;
}
// Lists
ul, ol {
margin-top: $leading-margin;
margin-bottom: $leading-margin;
ul, ol {
margin-top: 0;
margin-bottom: 0;
}
}
// Blockquote
blockquote {
margin: $leading-margin 0;
padding: $leading-margin / 3;
p:last-child {
margin: 0;
}
}
cite {
display: block;
font-size: $core-font-size - 0.125;
&:before {
content: "\2014 \0020";
}
}
// Inline and Code
pre {
margin: $leading-margin 0;
padding: $content-padding;
}
code {
vertical-align: bottom;
}
// Extras
small {
font-size: $core-font-size - 0.125;
}
hr {
border-left: none;
border-right: none;
border-top: none;
margin: $leading-margin 0;
}

View File

@@ -0,0 +1,2 @@
@import "direction";
@import "range";

View File

@@ -0,0 +1,37 @@
@function opposite-direction($dir) {
@if $dir == 'left' {
@return right;
}
@else if $dir == 'right' {
@return left;
}
@else if $dir == 'ltr' {
@return rtl;
}
@else if $dir == 'rtl' {
@return ltr;
}
@else if $dir == 'top' {
@return bottom;
}
@else if $dir == 'bottom' {
@return top;
}
@else {
@warn "#{$dir} is not a direction! Make sure your direction is all lowercase!";
@return false;
}
}
@function named-direction($dir) {
@if $dir == 'ltr' {
@return left;
}
@else if $dir == 'rtl' {
@return right;
}
@else {
@warn "#{$dir} is not a valid HTML direction! Make sure you are using a valid HTML direction";
@return false;
}
}

View File

@@ -0,0 +1,13 @@
@function lower-bound($range){
@if length($range) <= 0 {
@return 0;
}
@return nth($range,1);
}
@function upper-bound($range) {
@if length($range) < 2 {
@return 999999999999;
}
@return nth($range, 2);
}

View File

@@ -0,0 +1,2 @@
@import "breakpoints";
@import "utilities";

View File

@@ -0,0 +1,44 @@
// Breakpoints
@mixin breakpoint($breakpoints, $media: all) {
@each $breakpoint in $breakpoints {
@if $breakpoint == large-desktop-range {
@media only #{$media} and (min-width: $large-desktop-container) { @content; }
}
@else if $breakpoint == desktop-range {
@media only #{$media} and (min-width: $desktop-container) and (max-width: $large-desktop-container - 0.062) { @content; }
}
@else if $breakpoint == tablet-range {
@media only #{$media} and (min-width: $tablet-container) and (max-width: $desktop-container - 0.062) { @content; }
}
@else if $breakpoint == large-mobile-range {
@media only #{$media} and (min-width: $large-mobile-container + 0.063) and (max-width: $tablet-container - 0.062) { @content; }
}
@else if $breakpoint == mini-nav-range {
@media only #{$media} and (min-width: $tablet-container - 0.062) and (max-width: $large-desktop-container - 0.062) { @content; }
}
@else if $breakpoint == small-mobile-range {
@media only #{$media} and (max-width: $large-mobile-container) { @content; }
}
@else if $breakpoint == no-mobile {
@media only #{$media} and (min-width: $tablet-container) { @content; }
}
@else if $breakpoint == mobile-only {
@media only #{$media} and (max-width: $tablet-container - 0.062) { @content; }
}
@else if $breakpoint == desktop-only {
@media only #{$media} and (max-width: $desktop-container - 0.062) { @content; }
}
@else if $breakpoint == mobile-plus {
@media only #{$media} and (min-width: $mobile-container - 0.062) { @content; }
}
@else if $breakpoint == tablet-plus {
@media only #{$media} and (min-width: $tablet-container - 0.062) { @content; }
}
@else if $breakpoint == desktop-plus {
@media only #{$media} and (min-width: $desktop-container - 0.062) { @content; }
}
@else if $breakpoint == large-desktop-plus {
@media only #{$media} and (min-width: $large-desktop-container - 0.062) { @content; }
}
}
}

View File

@@ -0,0 +1,30 @@
// List Reset
%list-reset {
margin: 0;
padding: 0;
list-style: none;
}
// Vertical Centering
%vertical-align {
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
// Columns
@mixin columns($columns) {
width: percentage(1/$columns);
}
// Float with margin variable
@mixin float($direction, $margin: 0) {
float: $direction;
margin-#{opposite-direction($direction)}: $margin;
}

View File

@@ -0,0 +1,46 @@
// Alignment Classes
$align-class-names:
large-desktop,
desktop,
tablet,
large-mobile,
small-mobile,
no-mobile,
mobile-only;
// Breakpoints
$align-class-breakpoints:
$large-desktop-range,
$desktop-range,
$tablet-range,
$large-mobile-range,
$small-mobile-range,
$no-mobile,
$mobile-only;
// Create Responsive Alignment Classes
@mixin align-classes{
.text-left {
text-align: left !important;
}
.text-right {
text-align: right !important;
}
.text-center {
text-align: center !important;
}
.text-justify {
text-align: justify !important;
}
@for $i from 1 through length($align-class-names) {
@media #{(nth($align-class-breakpoints, $i))} {
.#{(nth($align-class-names, $i))}-text-left { text-align: left !important; }
.#{(nth($align-class-names, $i))}-text-right { text-align: right !important; }
.#{(nth($align-class-names, $i))}-text-center { text-align: center !important; }
.#{(nth($align-class-names, $i))}-text-justify { text-align: justify !important; }
}
}
}
@include align-classes;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
body, h5, h6,
.badge, .note, .grav-mdeditor-preview,
input, select, textarea, button, .selectize-input,
h1, h2, h3, h4,
.fontfamily-sans .CodeMirror pre,
#admin-menu li, .form-tabs > label, .label, {
font-family: "Helvetica Neue", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
}
//.ck-editor shortcode, .ck-editor twig,
.CodeMirror pre,
code, kbd, pre, samp, .mono {
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
}

View File

@@ -0,0 +1,109 @@
// REQUIRED DEPENDENCIES - DO NOT CHANGE
// Load Third Party Libraries
@import "vendor/bourbon/bourbon";
// Load Nucleus Configuration
@import "configuration/nucleus/base";
// Load Template Configuration
@import "configuration/template/base";
// Load Nucleus Mixins and Functions
@import "nucleus/functions/base";
@import "nucleus/mixins/base";
// Load Template Library
@import "template/modules/base";
@import "template/colors";
//------------------------------------------
// TEMPLATE COMPONENTS
// Core
@import "template/core";
// Extensions
@import "template/extensions";
// Utilities
@import "template/utilities";
// Header
@import "template/header";
// Typography
@import "template/typography";
// Special Fonts
@import "template/fonts";
// Forms
@import "template/forms";
// Tables
@import "template/tables";
// Buttons
@import "template/buttons";
// Errors
@import "template/errors";
// Login
@import "template/login";
// Admin
@import "template/admin";
// Pages
@import "template/pages";
// Remodal
@import "template/remodal";
// Tabs
@import "template/tabs";
// Editor
@import "template/editor";
// Dropzone
@import "template/dropzone";
// Toastr
@import "template/toastr";
// GPM
@import "template/gpm";
// PHPInfo
@import "template/phpinfo";
// Nav Toggle
@import "template/nav-toggle";
// Notifications
@import "template/notifications";
// Changelog
@import "template/changelog";
// Media
@import "template/media";
@import "template/jqcron";
// Tools
@import "template/tools";
// Whitelabel
@import "template/whitelabel";
// Horizontal Scroll
@import "template/scrollbars";
// Horizontal Scroll
@import "template/horizontal-scroll";
// Custom
@import "template/custom";

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,131 @@
.button {
@extend %button;
}
.button-group {
position: relative;
display: inline-block;
vertical-align: top;
// real button
> .button:first-child:not(:last-child):not(.dropdown-toggle) {
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
> .button:first-child {
margin-left: 0 !important;
}
> .button {
}
// toggle caret
> .button + .dropdown-toggle {
text-align: center;
padding-right: 8px;
padding-left: 8px;
i {
margin: 0;
}
}
> .button:last-child:not(:first-child), > .dropdown-toggle:not(:first-child) {
border-top-left-radius: 0 !important;
border-bottom-left-radius: 0 !important;
}
.button + .button, .button + .button-group, .button-group + .button, .button-group + .button-group {
margin-left: -3px;
}
&:last-child {
.dropdown-menu {
left: inherit;
right: 0;
}
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 150px;
padding: 5px 0;
margin: 2px 0 0;
font-size: 14px;
text-align: left;
list-style: none;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border-radius: 4px;
.button {
margin-right: 0 !important;
}
&.language-switcher {
min-width: 50px;
}
&.lang-switcher {
min-width: 150px;
left: inherit;
right: 0;
button {
width: 100%;
}
}
.divider {
height: 1px;
margin: 9px 0;
overflow: hidden;
}
li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
&:focus, &:hover {
text-decoration: none;
}
}
}
}
.open > .dropdown-menu {
display: block;
}
.dropdown-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 990;
}
// Override style for stubborn gumroad button
#admin-main .admin-block a.gumroad-button {
padding: 0.5rem 1rem !important;
font-size: inherit !important;
font-weight: 400 !important;
line-height: inherit !important;
font-family: inherit !important;
border-radius: 4px !important;
box-shadow: inherit !important;
.gumroad-button-logo {
display: none !important;
background-image: none !important;
}
}

View File

@@ -0,0 +1,117 @@
// Changelog
body .changelog {
text-align: left;
.remodal-close {
display: none;
}
code {
white-space: pre-wrap;
vertical-align: inherit;
font-size: 0.8rem;
}
h1 {
text-align: center;
font-size: 2rem;
margin: 1rem 0;
letter-spacing: -1px;
}
.remodal {
}
.remodal-confirm {
float: right;
}
.changelog-overflow {
max-height: 500px;
overflow: auto;
margin-bottom: 1em;
border: 1px solid #ddd;
border-radius: 3px;
background: white;
padding: 1em;
}
margin-top: -2rem;
h3, h4 {
text-align: center;
font-weight: bold;
}
h3 {
font-size: 1.3rem;
margin: 1.3rem 0 0 0;
line-height: 1;
}
h3 + h4 {
font-size: 1rem;
margin: 0 0 1rem 0;
color: #666;
}
ol {
list-style: none;
padding: 0;
margin: 0 0 3rem 0;
a[href='#new'] {
& + ul > li {
&:before {
background-color: #207DE5;
content: 'New';
}
}
}
a[href='#improved'] {
& + ul > li {
&:before {
background-color: #FBCA04;
color: #333;
content: 'Improved';
}
}
}
a[href='#bugfix'] {
& + ul > li {
&:before {
background-color: #FC2929;
content: 'Bugfix';
}
}
}
}
ul {
list-style: none;
padding: 0;
li {
margin-bottom: 0.5rem;
padding-left: 6rem;
margin-left: 0;
list-style: none;
&:before {
margin-left: -6rem;
display: inline-block;
border-radius: 2px;
color: #fff;
font-weight: bold;
margin-right: 1rem;
text-align: center;
width: 5rem;
font-size: 0.8rem;
padding: 2px 0;
font-style: normal;
}
}
}
}

View File

@@ -0,0 +1,93 @@
// +-------------------------------------------------------------------------+
// | Flat Colors |
// +-------------------------------------------------------------------------+
// Greens
$color-navy: #001f3f;
$color-blue: #0074D9;
$color-aqua: #7FDBFF;
$color-teal: #39CCCC;
$color-olive: #3D9970;
$color-green: #2ECC40;
$color-lime: #01FF70;
$color-yellow: #FFDC00;
$color-orange: #FF851B;
$color-red: #FF4136;
$color-maroon: #85144b;
$color-fuchsia: #F012BE;
$color-purple: #B10DC9;
// +-------------------------------------------------------------------------+
// | Flat UI |
// +-------------------------------------------------------------------------+
// Greens
$flat-turquoise: #1ABC9C;
$flat-green-sea: #16A085;
$flat-emerald: #2ECC71;
$flat-nephritis: #27AE60;
// Blues
$flat-peter-river: #3498DB;
$flat-belize-hole: #2980B9;
$flat-wet-asphalt: #34495E;
$flat-midnight-blue: #2C3E50;
// Purples
$flat-amethyst: #9B59B6;
$flat-wisteria: #8E44AD;
// Yellows
$flat-sunflower: #F1C40F;
// Oranges
$flat-orange: #F39C12;
$flat-carrot: #E67E22;
$flat-pumpkin: #D35400;
// Reds
$flat-alizarin: #E74C3C;
$flat-pomegranate: #C0392B;
// Grays
$flat-clouds: #ECF0F1;
$flat-silver: #BDC3C7;
$flat-concrete: #95A5A6;
$flat-asbestos: #7F8C8D;
// Aliases make colors easier to remember.
// Greens
$flat-green-1: $flat-turquoise;
$flat-green-2: $flat-green-sea;
$flat-green-3: $flat-emerald;
$flat-green-4: $flat-nephritis;
// Blues
$flat-blue-1: $flat-peter-river;
$flat-blue-2: $flat-belize-hole;
$flat-blue-3: $flat-wet-asphalt;
$flat-blue-4: $flat-midnight-blue;
// Purples
$flat-purple-1: $flat-amethyst;
$flat-purple-2: $flat-wisteria;
// Yellows
$flat-yellow-1: $flat-sunflower;
// Oranges
$flat-orange-1: $flat-orange;
$flat-orange-2: $flat-carrot;
$flat-orange-3: $flat-pumpkin;
// Refs
$flat-red-1: $flat-alizarin;
$flat-red-2: $flat-pomegranate;
// Grays
$flat-gray-1: $flat-clouds;
$flat-gray-2: $flat-silver;
$flat-gray-3: $flat-concrete;
$flat-gray-4: $flat-asbestos;

View File

@@ -0,0 +1,51 @@
html, body {
height: 100%;
}
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow: hidden;
}
b, strong {
font-weight: $font-weight-bold
}
.bigger {
font-size: 1.2rem;
}
.button-bar {
text-align: right;
float: right;
z-index: 0;
}
.alert {
font-size: 1rem;
padding: 0.5rem $padding-default;
position: relative;
@include breakpoint(mobile-only) {
padding: 0.5rem 1rem;
}
}
.badge {
display: inline-block;
font-size: 0.8rem;
font-weight: 500;
border-radius: 10px;
padding: 0px 6px;
min-width: 20px;
line-height: 20px;
text-align: center;
}
.empty-state {
margin: 0 auto;
text-align: center;
padding-top: 100px;
}

View File

@@ -0,0 +1,2 @@
// Your custom SCSS should be written here...

View File

@@ -0,0 +1,306 @@
/* The MIT License */
$preview-width: 200px;
$preview-height: 150px;
.pagemedia-field {
.form-label {
display: flex;
justify-content: space-between;
margin-right: 1.5rem;
align-items: center;
label {
cursor: pointer;
flex: 1;
}
}
input[type="range"] {
&::-webkit-slider-runnable-track {
background: inherit !important;
border: none !important;
}
}
}
.dropzone {
position: relative;
border-radius: $form-border-radius;
min-height: 4rem;
&.dz-clickable {
cursor: pointer;
}
&.dz-drag-hover {
border-color: rgba(0,0,0,0.15);
background: rgba(0,0,0,0.04);
}
&.dz-started .dz-message {
display: none;
}
.dz-message {
opacity: 1;
-ms-filter: none;
filter: none;
}
.dz-preview {
position: relative;
display: inline-block;
margin: 1rem 1rem 1.5rem 1rem;
vertical-align: top;
&.dz-file-preview [data-dz-thumbnail] {
display: none;
}
&.dz-error .dz-error-mark {
display: block;
}
&.dz-success .dz-success-mark {
display: block;
}
.dz-success-mark, .dz-error-mark {
font-family: FontAwesome;
display: none;
position: absolute;
width: 22px;
height: 22px;
font-size: 18px;
line-height: 25px;
border-radius: 100%;
text-align: center;
right: 2px;
top: 2px;
span {
display: none;
}
}
&:hover {
.dz-success-mark, .dz-error-mark {
display: none;
}
}
.dz-success-mark {
&::after {
content: '\f00c';
}
}
.dz-error-mark {
&::after {
content: '\f12a';
}
}
.dz-progress {
position: absolute;
bottom: auto;
left: 0px;
right: 0px;
height: 4px;
display: none;
.dz-upload {
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 0%;
}
}
.dz-error-message {
display: none;
position: absolute;
top: 0;
left: 0;
right: 0;
font-size: 0.9rem;
line-height: 1.2;
padding: 8px 10px;
z-index: 500;
}
&.dz-processing .dz-progress {
display: block;
}
&:hover {
.dz-remove, .dz-unset, .dz-view, .dz-insert, .dz-metadata {
display: block;
}
}
&.dz-processing {
&:hover {
.dz-unset {
display: none;
}
}
}
&:hover.dz-error .dz-error-message {
display: block;
}
//.dz-remove, .dz-unset, .dz-insert {
// display: none;
//}
.dz-filename {
position: absolute;
z-index: 1;
bottom: 0;
width: 100%;
padding: 0 5px;
background: rgba(0,0,0,0.3);
color: #fff;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dz-remove, .dz-unset, .dz-view, .dz-insert, .dz-metadata {
display: none;
position: absolute;
width: 25px;
height: 25px;
right: -26px;
font-size: 0;
cursor: pointer;
&:hover {
&:after {
color: #fff;
}
}
&:after {
text-align: center;
display: block;
color: #999;
font-family: FontAwesome;
font-size: 18px;
line-height: 25px;
}
}
.dz-insert {
top: -1px;
border-top-right-radius: 4px;
&:after {
content: '\f055';
}
}
.dz-view {
top: 24px;
&:after {
content: '\f06e';
}
}
.dz-remove {
top: 72px;
&:after {
content: '\f1f8';
}
}
.dz-unset {
top: 96px;
border-bottom-right-radius: 4px;
&:after {
content: '\f00d';
}
}
.dz-metadata {
top: 49px;
&:after {
content: '\f05a';
}
}
&.dz-no-editor {
.dz-view {
top: -1px;
border-top-right-radius: 4px;
}
.dz-remove {
top: 24px;
}
.dz-unset {
top: 72px;
}
}
&:hover .dz-remove, &:hover .dz-unset {
&.file-thumbnail-remove {
display: block;
}
&:not(.file-thumbnail-remove) {
border-left: 0;
}
}
&.dz-processing {
.dz-details {
overflow: hidden;
}
}
.dz-details {
width: $preview-width;
height: $preview-height;
position: relative;
font-size: 0.8rem;
background-image: url('../images/transparent.png');
img {
position: absolute;
object-fit: contain;
top: 0;
left: 0;
width: $preview-width;
height: $preview-height;
}
.dz-size {
position: absolute;
bottom: -28px;
left: 0;
right: 0;
text-align: center;
font-size: 0.8rem;
height: 28px;
line-height: 28px;
}
}
}
&.dz-clickable {
.dz-message, .dz-message span {
cursor: pointer;
text-align: center;
font-size: 1.2rem;
line-height: 1.4;
margin: 1rem 0;
}
}
* {
cursor: default;
}
}

View File

@@ -0,0 +1,315 @@
// Grav Editor
.grav-editor-content {
position: relative;
}
.grav-editor {
[data-grav-editor] {
height: 300px;
&.code-mirrored {
padding: 0;
border: 0;
position: absolute;
z-index: -1;
display: block !important;
}
}
.CodeMirror {
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar {
z-index: 1;
&:focus {
outline: none;
}
}
}
.CodeMirror-scroll {
//margin-right: -36px;
position: static;
// hide native scrollbar at the bottom
padding-bottom: 15px;
}
.grav-editor-resizer {
height: 6px;
cursor: row-resize;
border-radius: 0 0 3px 3px;
position: relative;
z-index: 1;
}
.CodeMirror-selected {
background: #D6E8FF;
}
.CodeMirror-gutters {
height: 100%!important;
}
}
.grav-editor-fullscreen {
position: fixed;
top: 4.2rem;
left: 0;
bottom: 0;
right: 0;
z-index: 3;
padding: 0 !important;
margin: 0 !important;
display: flex;
flex-direction: column;
.grav-editor-content {
display: flex;
flex-direction: column;
flex: 1 0 0;
overflow-y: auto;
}
.grav-editor-content, .CodeMirror-wrap, .grav-editor-preview {
height: 100% !important;
}
.grav-editor-toolbar {
flex: 0 0 auto;
}
.grav-editor-toolbar, .grav-editor-toolbar ul li:first-child a, .grav-editor-toolbar-flip ul li:last-child a {
border-radius: 0 !important;
}
.grav-editor-resizer {
display: none;
}
.grav-editor-content.is-active {
display: flex;
}
}
.grav-editor-toolbar {
@include align-items(stretch);
@include display(flex);
@include flex-direction(row);
.grav-editor-actions {
@include flex(1);
}
.grav-editor-modes {
flex-shrink: 0;
margin-right: 2px;
ul {
float: right;
}
}
}
.grav-editor-toolbar {
@include clearfix;
ul {
list-style: none;
margin: 0;
padding: 0;
li {
&:first-child a {
border-top-left-radius: 4px;
}
display: inline-block;
}
a {
display: inline-block;
cursor: pointer;
background-color: transparent;
border-radius: 0;
padding: 0.4rem;
margin-top: -1px;
border: 1px solid transparent;
&, &:hover, &:active, &:focus {
outline: 0;
}
}
}
.dropdown-menu li {
width: 50%;
}
}
.grav-editor-hide-toolbar {
display: none;
}
.grav-editor-toolbar .grav-editor-modes {
li {
&:first-child a {
border-top-left-radius: 0;
}
&:last-child a {
border-top-right-radius: 4px;
}
}
a {
&:hover {
/*border: 1px solid transparent;
border-bottom: 1px solid darken($content-bg, 20%);*/
}
}
}
.grav-editor-toolbar-flip {
float: right;
ul li:last-child a {
border-top-right-radius: 4px;
}
}
.grav-editor-content, .grav-editor-preview {
@include clearfix;
cursor: text;
display: none;
&.is-active {
display: block;
}
}
.grav-editor-content {
/* PADDING */
.CodeMirror-lines {
padding: 10px 0; /* Vertical padding around content */
}
&.fontsize-lg {
font-size: 16px;
&.fontfamily-sans {
font-size: 18px;
}
}
&.fontsize-md {
font-size: 14px;
&.fontfamily-sans {
font-size: 16px;
}
}
&.font-size-sm {
font-size: 12px;
&.fontfamily-sans {
font-size: 14px;
}
}
}
#admin-main .admin-block {
.grav-editor-preview {
padding: 20px;
overflow-y: scroll;
position: relative;
line-height: 1.5;
background: #fff !important;
color: #555 !important;
//shortcode {
// background: #ffc;
// font-size: 90%;
//}
//
//twig {
// background: #cfc;
// font-size: 90%;
//}
a {
color: #1c90fb !important;
}
h1 {
font-size: 36px;
}
h2 {
font-size: 28px;
}
h3 {
font-size: 22px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 14px;
}
h1, h2, h3, h4, h5, h6 {
padding: 0;
margin: 0.5rem 0;
border-bottom: 0 !important;
color: #333 !important;
font-weight: bold;
}
p {
padding: 0;
margin: 0.5rem 0 1rem;
}
pre {
code {
color: #1c90fb;
font-size: 14px;
}
}
blockquote {
border-color: #ccc !important;
background-color: #f0f0f0 !important;
p {
color: #444 !important;
}
}
hr {
border-color: #eee !important;
}
table {
td, th, tr {
border-color: #eee !important;
}
}
}
}
.grav-editor-toolbar {
[data-hint]:after {
white-space: nowrap !important;
max-width: 300px;
width: auto !important;
}
p {
margin-top: 10px;
margin-bottom: 10px;
padding-left: 20px;
}
}

View File

@@ -0,0 +1,17 @@
// Error specific styling
#error {
text-align: center;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
padding-bottom: 6rem;
h1 {
font-size: $core-font-size + 4.0rem;
}
p {
margin: 1rem 0;
}
}

View File

@@ -0,0 +1,58 @@
.default-animation {
@include transition(all 0.5s ease);
}
// Pulse Animation
.pulse {
animation-name: pulse_animation;
animation-duration: 2000ms;
transform-origin:70% 70%;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes pulse_animation {
0% { transform: scale(1); }
30% { transform: scale(1); }
40% { transform: scale(1.08); }
50% { transform: scale(1); }
60% { transform: scale(1); }
70% { transform: scale(1.05); }
80% { transform: scale(1); }
100% { transform: scale(1); }
}
.default-border-radius {
border-radius: 4px;
}
.default-glow-shadow {
box-shadow: 0 0 20px rgba(0,0,0,0.2);
}
.default-box-shadow {
box-shadow: 0 0 10px 2px rgba(0,0,0,0.03);
}
.login-box-shadow {
box-shadow: 0 10px 100px 0px rgba(0,0,0,0.4);
}
.padding-horiz {
padding-left: $padding-horiz;
padding-right: $padding-horiz;
@include breakpoint(desktop-only) {
padding-left: $padding-horiz - 3rem;
padding-right: $padding-horiz - 3rem;
}
@include breakpoint(mobile-only) {
padding-left: $padding-horiz - 6rem;
padding-right: $padding-horiz - 6rem;
}
}
.padding-vert {
padding-top: $padding-vert;
padding-bottom: $padding-vert;
}

View File

@@ -0,0 +1,40 @@
// RocketTheme Apps Support
@include font-face('rockettheme-apps', '../fonts/rockettheme-apps/rockettheme-apps');
i.fa-grav, i.fa-grav-spaceman, i.fa-grav-text, i.fa-grav-full,
i.fa-grav-logo, i.fa-grav-symbol, i.fa-grav-logo-both, i.fa-grav-both,
i.fa-gantry, i.fa-gantry-logo, i.fa-gantry-symbol, i.fa-gantry-logo-both, i.fa-gantry-both {
font-family: 'rockettheme-apps';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
// Grav
.fa-grav-logo:before, .fa-grav-text:before {
content: "\61";
}
.fa-grav-symbol:before, .fa-grav:before, .fa-grav-spaceman:before {
content: "\62";
}
.fa-grav-logo-both:before, .fa-grav-both:before, .fa-grav-full:before {
content: "\66";
}
// Gantry
.fa-gantry-logo:before {
content: "\64";
}
.fa-gantry:before, .fa-gantry-symbol:before {
content: "\63";
}
.fa-gantry-logo-both:before, .fa-gantry-both:before {
content: "\65";
}

View File

@@ -0,0 +1,997 @@
// Forms
form {
h1, h3, .form-spacer h3 {
padding: 0 $padding-default 0.5rem;
margin: 0 0 1rem;
font-size: 1.5rem;
text-align: left;
letter-spacing: -1px;
}
h3 {
padding-left: 0;
}
p {
padding: 0 $padding-default;
}
pre {
padding: 1.5rem 3rem;
}
.nowrap {
white-space: nowrap;
}
.form-description {
p {
padding: 0;
}
}
.button {
@include breakpoint(mobile-only) {
padding: 0.25rem 0.5rem;
}
}
.form-field {
margin-bottom: 1rem;
padding-left: $padding-default;
@include breakpoint(mobile-only) {
padding-left: 1rem;
}
.file-thumbnail-wrapper {
display: inline-block;
position: relative;
}
.file-thumbnail {
max-height: 150px;
vertical-align: top;
display: inline-block;
margin-bottom: 10px;
}
.file-thumbnail-remove {
position: absolute;
text-align: center;
display: block;
top: 3px;
right: 3px;
width: 25px;
height: 25px;
border-radius:100%;
.fa {
font-size: 20px;
line-height: 25px;
vertical-align: top;
}
}
}
.form-data {
padding-right: $padding-default;
@include breakpoint(mobile-only) {
padding-right: 1rem;
}
}
.form-input-addon-wrapper {
display: flex;
.form-input-addon {
display: flex;
padding: 0 5px;
justify-content: center;
align-items: center;
&.copy-to-clipboard {
cursor: pointer;
}
&[data-regenerate] {
cursor: pointer;
}
}
input {
height: 35px;
display: table-cell;
&[name="data[folder]"] {
transition: background-color .5s ease;
}
}
.form-input-prepend {
border-radius: 4px 0 0 4px;
border-right-width: 0 !important;
}
.form-input-append {
border-radius: 0 4px 4px 0;
border-left-width: 0 !important;
}
input:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
input:not(:last-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
.overlay {
padding-top: 1rem;
padding-bottom: 1px;
&.bottom {
margin: 2rem auto -2rem auto;
}
}
.required {
display: inline-block;
font-family: helvetica, arial, sans-serif;
vertical-align: middle;
line-height: 0;
font-size: 30px;
margin-left: 0px;
margin-bottom: -5px;
}
label {
padding: 5px 0;
font-weight: 400;
margin:0;
p {
margin: 0;
}
[data-hint] {
display: inline;
}
.hint-icon {
opacity: 0.7;
transition: 0.5s opacity;
}
&:hover .hint-icon {
opacity: 1.0;
}
&.inline {
display: inline;
vertical-align: middle;
margin-right: 15px;
}
&.toggleable {
display: inline;
}
}
.form-sublabel {
p {
opacity: 0.8;
font-size: 0.9rem;
margin: 10px 20px 0 0;
padding: 0;
}
}
input, select, textarea, button, .selectize-input {
font-size: $core-font-size;
line-height: $core-line-height;
border-radius: $form-border-radius;
-webkit-font-smoothing: antialiased;
}
.form-input-file {
position: relative;
min-height: 70px;
border-radius: $form-border-radius;
ul {
margin: 1rem 0;
text-align: left;
font-size: 1rem;
border-radius: $form-border-radius;
}
p {
display: block;
height: 100%;
text-align: center;
margin: 0;
padding: 0.8rem 1rem 0;
font-size: 1.2rem;
}
input {
display: none;
}
}
.selectize-dropdown {
z-index: 100000;
}
// vertical alignment of forms
.grid.vertical {
@include flex-flow(column);
}
// compact
.compact {
.form-field {
margin-bottom: 0.2rem;
}
.form-list-wrapper {
li {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
.form-field {
width: 50%;
@include breakpoint(mobile-only) {
width: 100%;
}
}
}
}
}
.form-select-wrapper, .selectize-control.single .selectize-input {
position: relative;
&:after {
margin-top: 0;
border: 0;
position: absolute;
content: '\f078';
font-family: 'FontAwesome';
right: 12px;
top: 50%;
line-height: 0;
pointer-events: none;
}
}
.selectize-input {
display: block !important;
box-shadow: none;
padding: $form-select-pad;
margin: 0;
> input {
font-size: $core-font-size;
line-height: $core-line-height;
}
}
.selectize-control.single.plugin-remove_button .selectize-input {
.item, .remove-single {
cursor: pointer;
margin: 0 3px 3px 0;
padding: 2px 6px;
display: inline-block;
border-radius: 2px 0 0 2px !important;
}
.remove-single {
border-radius: 0 2px 2px 0 !important;
margin-left: -2px;
}
}
.selectize-control.single.plugin-remove_button .selectize-input,
.selectize-control.multi .selectize-input {
padding: ($leading-margin / 4) ($leading-margin / 4);
&.has-items {
padding-top: 6px;
padding-bottom: 4px;
}
.item, .remove-single {
border-radius: 2px;
line-height: 1.5;
}
.item > img {
max-height: 20px !important;
max-width: inherit !important;
}
}
.selectize-control.single .selectize-input {
&:after {
right: 27px;
}
&.dropdown-active {
&:after {
content: '\f077';
}
}
}
.x-small {
max-width: 5rem !important;
&.form-input-addon-wrapper {
max-width: inherit !important;
input {
max-width: 5rem !important;
}
}
}
.small {
max-width: 10rem !important;
&.form-input-addon-wrapper {
max-width: inherit !important;
input {
max-width: 10rem !important;
}
}
}
.medium:not(.switch-toggle), .medium.form-input-addon-wrapper input {
max-width: 20rem;
textarea {
height: 7rem;
}
&[data-grav-array-type="container"] {
max-width: 100% !important;
input[type=text] {
width: calc(70% - 110px);
}
}
}
.large, .large.form-input-addon-wrapper input {
max-width: 30rem !important;
textarea {
height: 10rem;
}
&[data-grav-array-type="container"] {
max-width: 100% !important;
input[type=text] {
width: calc(100% - 110px);
}
}
}
select {
width: 100%;
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
padding: $form-select-pad;
cursor: pointer;
margin: 0;
}
input[type=text],
input[type=password],
input[type=email],
input[type=date],
input[type=tel],
input[type=time],
input[type=week],
input[type=month],
input[type=number],
input[type=color],
input[type=url] {
width: 100%;
}
textarea {
width: 100%;
}
.form-frontmatter-wrapper {
border-radius: $form-border-radius;
}
.switch-toggle {
label {
cursor: pointer;
}
a,label {
outline: none !important;
}
}
.dynfields, [data-grav-field="array"], [data-grav-field="multilevel"] {
input[type=text] {
width: 40%;
float: left;
margin: 0 5px 5px 0;
}
.form-row {
display: inline-block;
width: 100%;
margin-right: 0;
max-width: 100% !important;
span {
padding: 0.5rem;
display: inline-block;
line-height: 1.5;
cursor: pointer;
&[data-grav-array-action="sort"] {
float: left;
cursor: move;
}
}
&.array-field-value_only {
width: 100%;
}
}
}
[data-grav-field="multilevel"] input:disabled {
background-color: lightgray;
}
[data-grav-array-type="container"].one-child {
[data-grav-array-action="sort"] {
display: none;
}
}
.button-bar {
margin-top: 1rem;
padding: 1.2rem 3rem;
width: 100%;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
.checkboxes {
display: inline-block;
padding: 5px 0;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
label {
display: inline;
cursor: pointer;
position: relative;
padding: 0 0 0 2rem;
margin-right: 15px;
}
label:before {
content:"";
display: inline-block;
width: 1.5rem;
height: 1.5rem;
top: 50%;
left: 0;
margin-top: -0.75rem;
margin-right: 10px;
position: absolute;
border-radius: $form-border-radius;
}
input[type=checkbox] {
display: none;
}
input[type=checkbox]:checked + label:before {
content:"\f00c";
font-family: "FontAwesome", sans-serif;
font-size: 1.2rem;
line-height: 1;
text-align: center;
}
&.toggleable label{
margin-right: 0;
}
}
}
// Display
.form-display-wrapper {
p {
padding-left: 0;
padding-right: 0;
&:first-child {
margin-top: 0;
}
}
}
// Frontmatter Field
div.frontmatter {
margin-bottom: 3rem;
}
// parents
[data-grav-field="parents"] {
.form-input-wrapper {
cursor: pointer;
i {
margin-right: .25rem;
}
}
}
[data-remodal-id].parents-container {
form {
overflow: hidden;
}
form > h1 {
margin-bottom: 0;
border-bottom: 1px solid #eee;
}
form > .button-bar {
margin-top: 0;
}
.fjs-list {
overflow: auto;
overflow-y: scroll;
max-height: 400px;
min-height: 100%;
}
.fjs-item {
margin-left: 0;
list-style-type: none;
text-align: left;
}
.parents-content:empty {
display: none;
}
}
textarea.frontmatter {
height: 130px !important;
& + .CodeMirror {
height: 130px;
}
}
// parents
[data-grav-field="parents"] {
.form-input-wrapper {
cursor: pointer;
i {
margin-right: .25rem;
}
}
}
[data-remodal-id].parents-container {
form {
overflow: hidden;
}
form > h1 {
margin-bottom: 0;
border-bottom: 1px solid #eee;
}
form > .button-bar {
margin-top: 0;
}
.fjs-list {
overflow: auto;
overflow-y: scroll;
max-height: 400px;
min-height: 100%;
}
.fjs-item {
margin-left: 0;
list-style-type: none;
text-align: left;
}
.parents-content:empty {
display: none;
}
}
// Sortables
.form-order-wrapper {
.notice {
padding: 5px;
}
ul.orderable {
list-style: none;
margin: 0;
padding: 0;
li {
padding: 0.2rem 1rem;
border-radius: $form-border-radius;
margin: 3px 0;
position: relative;
&.drag-handle {
cursor: move;
&::after {
content: '\f0c9';
font-family: FontAwesome;
position: absolute;
right: 10px;
}
}
i {
font-size: 0.8rem;
}
}
}
}
// Sortables
.form-list-wrapper {
ul[data-collection-holder] {
list-style: none;
margin: 0;
padding: 0;
> li {
padding: 1rem;
border-radius: $form-border-radius;
margin: 3px 0;
position: relative;
.item-actions {
position: absolute;
right: 10px;
top: 4px;
.fa {
cursor: pointer;
}
}
&.collection-collapsed {
height: 70px;
overflow: hidden;
@include transform(translateZ(0));
@include breakpoint(mobile-only) {
height: 120px;
}
// Fix for grav-plugin-admin#1928
// overflow: hidden;
> .form-field ~ .form-field {
display: none;
}
// end fix
}
}
&[data-collection-nosort] > li {
cursor: default;
}
}
.collection-actions {
text-align: right;
}
.collection-sort {
position: absolute;
top: 0;
left: 0;
width: 32px;
bottom: 0;
cursor: move;
@include breakpoint(mobile-only) {
width: 20px;
.fa {
font-size: 0.8rem;
}
}
.fa {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
[data-collection-nosort] .collection-sort {
display: none;
}
.list-confirm-deletion {
cursor: pointer;
display: flex;
position: absolute !important;
z-index: 10010;
padding: .5rem;
top: 13px;
right: 20px;
> i, span {
text-align: center;
display: inline-flex;
align-items: center;
}
}
}
.form-label.block {
position: relative;
&:hover {
z-index: 2;
}
label {
z-index: 2;
}
}
// Fieldset
#admin-main .admin-block h2 {
font-size: 1.25rem;
margin: 0 0 .5rem;
letter-spacing: normal;
}
.form-fieldset {
margin: 1rem 1.5rem;
}
.form-fieldset--label {
label {
display: table;
font-size: 1.25rem;
padding: .5rem 1rem;
width: 100%;
}
h2 {
margin: 0 !important;
}
.actions {
font-size: initial;
display: table-cell;
text-align: right;
vertical-align: middle;
}
& + .form-data {
margin-top: 1rem;
padding: 0;
}
}
.form-fieldset--cursor {
cursor: pointer;
}
.form-fieldset--info {
font-size: small;
}
.form-fieldset > input:checked ~ .form-data,
.form-fieldset--collapsible .open,
.form-fieldset input:checked ~ .form-label .form-fieldset--collapsible .close {
display: block;
}
.form-fieldset > .form-data,
.form-fieldset--collapsible .close,
.form-fieldset input:checked ~ .form-label .form-fieldset--collapsible .open {
display: none;
}
.filepicker-field-image {
width: 30px;
vertical-align: middle;
margin-right: 5px;
}
.filepicker-field-name {
vertical-align: middle;
}
.permissions-container {
.permission-value {
width: 50%;
float: left;
margin: 0 5px 5px 0;
height: 39px;
}
.switch-toggle {
line-height: 37px;
margin: 0 5px 5px 0;
}
.crudp-container {
display: flex;
.checkboxes.toggleable {
display: block;
label {
display: inline-flex;
padding: inherit;
padding-left: 1.5rem;
padding-right: 0.5rem;
font-weight: bold;
border-top-width: 1px;
border-bottom-width: 1px;
border-right-width: 1px;
border-left-width: 0;
border-style: solid;
&:before {
border: none;
background: none;
}
}
& input[type=checkbox] + label:before {
content:"\f023";
font-family: "FontAwesome";
font-size: 0.8rem;
line-height: 1.8;
text-align: center;
}
&[data-_check-status="1"] input[type=checkbox] + label:before {
content:"\f00c";
font-family: "FontAwesome";
}
&[data-_check-status="2"] input[type=checkbox] + label:before {
content:"\f05e";
}
}
& > div:first-child {
.checkboxes.toggleable {
label {
border-left-width: 1px;
border-radius: $form-border-radius 0 0 $form-border-radius;
}
}
}
& > div:last-of-type {
.checkboxes.toggleable {
label {
border-right-width: 1px;
border-radius: 0 $form-border-radius $form-border-radius 0;
}
}
}
}
}
[data-grav-field="cron"] {
display: flex;
align-items: center;
}
.cron-selector {
input {
font-family: $monospace !important;
font-weight: bold !important;
}
}
.cron-install {
margin: 1rem;
padding: 0;
border-radius: 4px;
form & pre {
padding: 1rem;
margin: 0 1.5rem;
line-height: 1;
}
.setup-status {
font-weight: bold;
}
}
.cron-status, .backups-history {
margin-bottom: 4rem;
.cron-at code {
font-size: 120%;
padding: 2px 10px;
border-radius: 2px;
}
.badge {
white-space: nowrap;
}
tr {
&.deleting {
background: #efefef;
color: #bbb;
text-shadow: 0 1px white;
button, .button {
background: #777;
pointer-events: none;
}
}
}
}
form .cron-job-list, form .backups-list {
li {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.form-field.grid {
width: calc(50% - 5px);
@include breakpoint(mobile-only) {
width: 100%;
}
}
}

View File

@@ -0,0 +1,207 @@
.gpm {
td {
border: 0;
}
.gpm-search {
position: relative;
padding: 0 3rem 0.5rem $padding-default;
text-indent: 2.5rem;
&:after {
position: absolute;
right: 60px;
top: 10px;
content: '\f002';
font-family: 'FontAwesome';
}
@include breakpoint(mobile-only) {
padding-left: 1rem;
}
}
.sort-actions {
float: right;
margin: 0 24px;
@include breakpoint(mobile-only) {
float: none;
}
> * {
font-size: 1rem;
display: inline-block;
vertical-align: middle;
}
.sort-icon {
cursor: pointer;
}
select {
margin: 0;
display: none;
}
.selectize-input {
width: 9rem;
vertical-align: middle;
line-height: 21px;
input {
line-height: 21px;
}
}
}
.gpm-name {
white-space: nowrap;
@include breakpoint(mobile-only) {
white-space: normal;
}
}
.gpm-version {
padding-left:0.5rem;
font-size: 0.9rem;
}
.gpm-testing {
@extend .badge;
border-radius: 3px;
padding: 0 4px;
font-size: 0.75rem;
}
.theme .gpm-testing {
line-height: 1rem;
position: absolute;
top: 0;
right: 0;
border-radius: 0 0 0 3px;
line-height: 1.3;
}
.gpm-actions {
.enabled, .disabled {
font-size: 1.6rem;
}
}
.gpm-item-info {
position: relative;
padding-bottom: 1rem;
margin-bottom: 3rem;
overflow: hidden;
.gpm-item-icon {
position: absolute;
right: $padding-default;
font-size: 20rem;
}
table {
position: relative;
}
td {
border: 0;
text-align: left !important;
&.double {
padding-left: 2rem;
}
&:first-child {
white-space: nowrap;
}
@include breakpoint(mobile-only) {
word-wrap: break-word;
word-break: break-word;
@include hyphens(auto);
}
}
tr:hover {
background: inherit;
}
}
.badge.update {
display: inline-block;
border-radius: 4px;
padding: 2px 10px;
margin-left: 1rem;
}
.gpm-ribbon {
overflow: hidden;
white-space: nowrap;
position: absolute;
top: 1rem;
right: -2rem;
@include transform(rotate(45deg));
a {
display: block;
font-weight: bold;
font-size: 0.9rem;
padding: 5px 40px;
text-align: center;
}
}
.themes {
padding: $padding-default;
.card-item {
padding: 1rem 1rem 4rem;
}
.gpm-screenshot {
text-align: center;
img {
margin: 0 auto;
max-height: 300px;
}
}
.gpm-name {
margin-bottom: 0.5rem;
white-space: inherit;
}
.gpm-actions {
margin: 1rem -1rem -1rem -1rem;
height: 4rem;
text-align: center;
padding: 1rem;
font-size: 1rem;
font-weight: bold;
position: absolute;
left: 0;
right: 0;
bottom: 1rem;
}
.active-theme .gpm-actions, &.inactive-theme .gpm-actions {
line-height: 2rem;
}
.inactive-theme .gpm-actions {
display: block;
font-weight: normal;
}
}
#gpm-release-toggle {
float: right;
margin-right: 3rem;
}
}

View File

@@ -0,0 +1,3 @@
// Header styling

View File

@@ -0,0 +1,54 @@
.jquery-horizontal-scroll-wrap{
position: relative;
.nav-next, .nav-prev{
position: absolute;
z-index: 5;
top: 50%;
font-size: 20px;
line-height: 20px;
display: block;
padding: 30px 8px;
color: #fff !important;
background: #000;
background: rgba(0,0,0,0.65);
cursor: pointer;
margin-top: -40px;
&.hide {
display: none;
}
&:hover, &:focus {
opacity: 1;
}
&:before{
display: inline;
font-family: "FontAwesome";
}
}
.nav-next {
right: 0;
&:before {
content: "\f105";
}
}
.nav-prev {
left: 0;
&:before {
content: "\f104";
}
}
.jquery-horizontal-scroll{
overflow: auto;
position: relative;
}
}

View File

@@ -0,0 +1,70 @@
/*
* This file is part of the Arnapou jqCron package.
*
* (c) Arnaud Buathier <arnaud@arnapou.net>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
.jqCron-selector {
position: relative;
}
.jqCron-cross,
.jqCron-selector-title {
cursor: pointer;
border-radius: 3px;
margin: 0 0.2em;
padding: 0 0.5em;
}
.jqCron-cross {
border-radius: 1em;
font-size: 80%;
padding: 0 0.3em;
}
.jqCron-selector-list {
left: 0.2em;
list-style: none;
margin: 0;
padding: 0;
position: absolute;
top: 1.5em;
z-index: 5;
}
.jqCron-selector-list li {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
cursor: default;
display: inline-block !important;
margin: 0;
padding: 0.1em 0.4em;
width: 100%;
}
.jqCron-selector-list.cols2 {
width: 4em;
}
.jqCron-selector-list.cols2 li {
width: 50%;
}
.jqCron-selector-list.cols3 {
width: 6em;
}
.jqCron-selector-list.cols3 li {
width: 33%;
}
.jqCron-selector-list.cols4 {
width: 8em;
}
.jqCron-selector-list.cols4 li {
width: 25%;
}
.jqCron-selector-list.cols5 {
width: 10em;
}
.jqCron-selector-list.cols5 li {
width: 20%;
}

View File

@@ -0,0 +1,200 @@
#admin-login {
@extend %vertical-align;
max-width: 24rem;
margin: 0 auto;
&.wide {
max-width: 50rem;
h1 {
height: 100px;
&.custom-logo img {
height: 80px;
}
}
form {
> .padding {
padding: 3rem 2rem 8rem 2rem;
> div {
width: 49%;
display: inline-block;
@include breakpoint(mobile-only) {
width: 100%;
margin-right: 0;
}
}
.form-field {
padding: 0 1rem;
}
}
label {
padding: 0;
}
input {
margin-bottom: 1rem;
text-align: left;
@include placeholder {
font-size: 1rem;
line-height: 2rem;
}
}
}
.grid {
display: block;
}
.form-label, .form-data {
display: block;
width: 100%;
@include flex(1);
}
}
.form-field {
padding-left: 0;
margin-bottom: 0;
}
.form-label {
display: none;
}
.form-data {
padding-right: 0;
}
.form-description {
display: block;
margin-top: -15px;
padding-bottom: 15px;
text-align: center;
font-size: 110%;
}
.wrapper-spacer {
width: 100% !important;
display: block !important;
padding: 0 1rem;
h3 {
padding-left: 1rem;
}
}
.instructions {
display: block;
padding: 2rem 3rem 0;
margin: 0;
font-size: 1.3rem;
p {
margin: 0;
}
}
h1 {
font-size: 0;
color: transparent;
height: 216px;
margin: 0;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
&.text-logo {
text-align: center;
font-size: 4rem;
}
&.custom-logo {
img {
max-height: 160px;
}
}
&.default-logo {
svg {
height: 320px;
}
}
}
h5 {
margin-top: 0;
text-align: center;
}
form {
position: relative;
.padding {
padding: 3rem 3rem 6rem 3rem;
}
input {
margin-bottom: 2rem;
font-size: 1.4rem;
line-height: 1.5;
text-align: center;
font-weight: 300;
-webkit-font-smoothing: auto;
}
.form-actions {
display: block !important;
width: 100% !important;
text-align: center;
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 1.5rem 0;
.button {
margin-bottom: 2px;
}
button:first-child {
margin-right: 1rem;
}
}
}
.alert {
text-align: center;
padding: 1rem 3rem;
}
}
.twofa-secret-code {
font-weight: bold;
}
.twofa-wrapper {
margin-top: 5px;
}
.twofa-secret {
position: absolute;
opacity: 0;
visibility: hidden;
transition: opacity 600ms, visibility 600ms;
&.show {
position: static;
visibility: visible;
opacity: 1;
}
}

View File

@@ -0,0 +1,331 @@
/* Media */
$dark-text: #333;
.pages-list-container {
width: 30%;
flex: none!important;
padding: 0!important;
.pages-list {
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&.depth-0 .row {
padding-left: .5rem;
}
.depth-1 .row {
padding-left: 1rem;
}
.page-item {
.page-link {
cursor: pointer;
}
}
.row.active {
background-color: rgba(#00a6cf, 0.1);
}
}
}
.media-page-dropzone {
width: 100%;
margin-bottom: 20px;
}
.media-container {
&.size-2-3 {
flex: none!important;
width: 70%;
}
.filters {
padding-bottom: 30px;
width: 100%;
.filter-wrapper {
margin-left: 10px;
margin-right: 10px;
&:after {
margin-top: -25px;
border: 0px none;
content: "\f078";
font-family: "FontAwesome";
right: 12px;
top: 50%;
line-height: 0;
color: #9BA2A6;
pointer-events: none;
float: right;
padding-right: 10px;
}
}
.filter {
option {
padding: 8px;
}
}
}
.files {
padding-left: 30px;
padding-right: 30px;
}
.admin-media-title {
color: $dark-text;
margin: 0px;
font-size: .8rem;
line-height: 1.3;
}
.card-item {
width: 49%;
&.empty-space {
background: rgba(255,255,255,0.4);
border: 1px solid rgba(0,0,0,0.1) !important;
color: rgba(0,0,0,0.3);
max-width: none;
display: block;
text-align: center;
top: 20%;
height: 10rem !important;
width: 50% !important;
margin: 0 auto !important;
font-size: 2rem;
line-height: 8rem;
transform: translateY(-50%);
}
}
.media-details {
text-align: center;
img {
width: 50%;
}
h2 {
margin: 0;
font-size: 1.8rem;
}
h5 {
color: #9BA2A6;
font-size: 1.1rem;
margin: 0;
}
}
h1 {
padding: 0 2rem 0.5rem!important;
}
.admin-form-wrapper {
width: 100%;
padding-bottom: 20px;
}
}
.spinning-wheel {
text-align: center;
}
/* Media in-page modal */
.media-container.in-modal {
h1 {
font-size: 30px!important;
margin-top: 0px;
}
a {
color: #333;
}
.pages-list li {
list-style-type: none;
margin-left: 0;
}
}
//Mediapicker field
.remodal.remodal-mediapicker {
max-width: 70vw;
padding: 0;
}
.media-container {
height: 70vh;
.grid {
justify-content: flex-start;
}
&.in-modal {
.gm-scrollbar {
background: rgba(255,255,255,0.2);
.thumb {
background-color: rgba(0,0,0,0.2) !important;
&:hover, &.active {
background-color: rgba(0,0,0,0.3) !important;
}
}
}
}
h5 {
border-bottom: 1px solid #ddd;
padding: 0.5rem 15px;
margin: 0;
height: 55px;
}
.filter-wrapper {
float: right;
margin-right: 5px;
margin-top: 10px;
}
.filter-date {
width: 150px;
}
.filter-type {
width: 100px;
margin-right: 15px;
}
.pages-list-container {
position: relative;
.pages-list {
border-top: 0;
padding-right: 10px;
font-size: 90%;
.row {
transition: none !important;
line-height: 2rem;
}
@for $i from 1 to 10 {
.depth-#{$i} .row {
padding-left: 1rem * ($i + 1);
}
}
}
.mediapicker-scroll {
position: absolute;
top: 55px;
bottom: 3px;
height: inherit;
}
}
.thumbs-list-container {
position: relative;
.media-range {
position: absolute;
right: 15px;
bottom: 5px;
}
.mediapicker-scroll {
position: absolute;
top: 55px;
bottom: 30px;
height: inherit;
}
.gm-scrollbar.-horizontal {
display: none;
}
}
#admin-media {
padding: 15px;
height: 100%;
align-items: flex-start;
align-content: flex-start;
.card-item {
width: 100px;
padding: 2px;
margin: 0 5px 5px 0;
border: 0;
img {
display: block;
}
}
.admin-media-details {
position: relative;
.admin-media-title {
position: absolute;
width: 100%;
bottom: 0;
background: rgba(0,0,0,0.3);
color: #fff;
font-size: 10px;
overflow: hidden;
line-height: 2;
text-indent: 2px;
white-space: nowrap;
}
}
}
}
[data-remodal-id="metadata"] {
h1 > * {
vertical-align: middle;
}
h1 strong {
@include ellipsis(75%);
}
.metadata-preview {
display: flex;
margin: 0 3rem;
.meta-preview {
max-width: 200px;
}
.meta-content ul {
margin: 0;
}
}
}

View File

@@ -0,0 +1,71 @@
$button-size : 2rem;
$transition: .3s; // increase this to see the transformations in slow-motion
@mixin line {
display: inline-block;
width: $button-size;
height: $button-size / 7;
border-radius: $button-size / 14;
transition: $transition;
}
.lines-button {
display: inline-block;
padding: $button-size / 4 $button-size / 4 $button-size / 2;
transition: .3s;
cursor: pointer;
user-select: none;
border-radius: $button-size / 5;
position: absolute;
z-index: 100002;
top: 10px;
background: transparent;
&:hover {
opacity: 1;
}
&:active {
transition: none;
background: rgba(0, 0, 0, .1);
}
}
.lines {
position: relative;
@include line;
/*create the upper and lower lines as pseudo-elements of the middle line*/
&:before, &:after {
@include line;
position: absolute;
left:0;
content: '';
transform-origin: $button-size / 14 center;
}
&:before { top: $button-size / 4; }
&:after { top: -$button-size / 4; }
}
.sidebar-mobile-open .lines-button.x .lines {
/*hide the middle line*/
background: transparent !important;
/*overlay the lines by setting both their top values to 0*/
&:before, &:after{
transform-origin: 50% 50%;
top:0;
width: $button-size;
}
// rotate the lines to form the x shape
&:before{
transform: rotate3d(0, 0, 1, 45deg);
}
&:after{
transform: rotate3d(0, 0, 1, -45deg);
}
}

View File

@@ -0,0 +1,116 @@
.single-notification.alert {
position: relative;
}
.hide-notification {
right: 1rem;
position: absolute;
}
.alert.raw {
padding: 0 !important;
}
#admin-dashboard {
#notifications {
.admin-block {
padding: 1rem 0;
}
li {
white-space: nowrap;
overflow: hidden;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
}
}
}
.dashboard-notifications-container, .plugins-notifications-container, .themes-notifications-container {
margin-bottom: 1rem;
.raw {
position: relative;
.hide-notification {
position: absolute;
top: 5px;
right: 5px;
line-height: 1;
font-size: 1.2rem;
color: #333;
text-shadow:
-1px -1px 0 #fff,
1px -1px 0 #fff,
-1px 1px 0 #fff,
1px 1px 0 #fff;
}
}
&:empty {
margin: 0;
}
}
#admin-main {
.content-padding {
div[class*=notifications-container] .alert {
a:hover {
text-decoration: underline;
}
a.button, span.button, button.button {
float: right;
text-decoration: none;
}
}
.top-notifications-container {
margin-bottom: 1rem;
.alert {
a {
cursor: pointer;
}
}
@include breakpoint(mobile-only) {
padding-bottom: 20px;
}
}
}
#notifications {
td:last-child {
position: relative;
span {
position: absolute;
display: block;
right: 2rem;
top: 6px;
}
}
.badge.alert {
margin: 0;
font-size: 0.7rem;
text-transform: uppercase;
margin-right: 5px;
border-radius: 4px;
vertical-align: middle;
line-height: 1.7;
i {
margin-right: 3px;
}
}
}
}

View File

@@ -0,0 +1,856 @@
#pages-filters {
margin-bottom: 1rem;
margin-top: -1rem;
padding: 1rem;
.button-border {
padding: .375rem .375rem;
white-space: nowrap;
&.adv-options {
&:after {
content: "\f078";
font-family: "FontAwesome", sans-serif;
margin-left: 5px;
}
&.open:after {
content: "\f077";
}
}
}
.filters-bar {
display: flex;
align-items: center;
.button-border {
margin-left: 0.5rem;
}
}
.filters-advanced {
overflow: hidden;
transition:max-height 0.3s ease-out;
height:auto;
max-height:600px;
&.hide {
max-height: 0;
}
.button-border {
display: inline-block;
margin-top: 0.5rem;
}
fieldset {
margin: 1rem 0 0;
border-radius: $border-radius;
legend {
margin-left: -0.5rem;
padding: 0 0.5rem;
}
.checkboxes {
margin-right: 1.5rem;
label {
padding-left: 1.7rem;
&:before {
margin-top: -0.6rem;
margin-right: 0;
width: 1.25rem;
height: 1.25rem;
}
}
}
}
}
}
#pages-content-wrapper {
display: flex;
flex-direction: column;
margin-bottom: -1rem;
height: calc(100vh - 190px);
.grav-loading {
min-height: 600px;
.grav-loader {
margin: 0 auto;
position: relative;
top: 230px;
}
}
.fjs-container {
min-height: initial;
flex-grow: 1;
}
.fjs-path-bar {
//margin-bottom: -1rem;
border-bottom: 0;
padding: 0.5rem;
overflow: inherit;
}
.fjs-col {
width: 33.33333334%;
min-width: 300px;
min-height: 300px;
max-height: initial;
}
.fjs-item {
max-width: 100%;
> .fjs-item-wrapper {
display: flex;
justify-content: flex-start;
padding: 0;
margin: 1px 0;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
outline: 0;
}
a {
padding: 7px 2px 7px 5px;
& * {
@include transition(all 0.5s ease);
}
}
.fjs-title {
display: flex;
align-items: center;
flex-grow: 1;
max-width: 100%;
overflow: auto;
[data-flexpages-dotx3] {
.dropdown-toggle {
padding: 0;
background: transparent;
border: 0;
}
/* FIXME: properly move colors to presets */
.dropdown-menu {
top: inherit;
left: inherit;
right: inherit;
bottom: inherit;
position: fixed;
cursor: default;
padding: 0 0 0.5rem;
color: #212529;
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0,0,0,.15);
border-radius: .25rem;
width: 350px;
.tags {
padding-top: 0;
}
a {
cursor: pointer;
}
table {
display: table;
tbody {
width: 100%;
display: inherit;
}
tr {
display: table-row;
}
td {
display: table-cell;
text-align: left;
flex: none;
word-break: break-all;
white-space: normal;
&:first-child {
padding-left: 0;
width: 80px;
}
&:last-child {
padding-right: 0;
width: calc(100% - 80px);
}
}
}
.divider {
height: 0;
margin: .5rem 0;
overflow: hidden;
}
.action-bar {
border-radius: $border-radius $border-radius 0 0;
& + .divider {
margin-top: 0;
}
a.dropdown-item:hover {
border-radius: 0;
&:first-child {
border-top-left-radius: 4px;
}
&:last-child {
border-top-right-radius: 4px;
}
}
}
.dropdown-item {
display: block;
width: 100%;
padding: 0.5rem;
clear: both;
font-weight: 400;
text-align: inherit;
white-space: nowrap;
border: 0;
border-radius: $border-radius;
&:hover {
text-decoration: none;
}
}
.fa {
display: inline-block;
width: 16px;
height: inherit;
text-align: left;
}
.action-bar {
display: flex;
a, i {
text-align: center;
}
}
.details, .tags, .langs {
padding: 0 .5rem 0;
}
.infos {
margin: 0 .15rem;
ul {
margin: 0;
padding: 0;
}
}
.langs {
.lang {
display: inline-block;
.fa {
font-size: 0.6rem;
padding: 0 0.15rem;
}
}
}
}
}
& > a {
flex-grow: 1;
overflow: hidden;
}
}
.button-group {
.fa {
font-size: 0.9rem;
width: 28px;
height: 28px;
display: flex;
justify-content: center;
align-items: center;
&.disabled {
opacity: 0;
}
}
}
.fjs-icon {
position: relative;
display: flex;
justify-content: center;
align-items: center;
overflow: visible !important;
width: 34px;
height: 34px;
min-width: 34px;
border-radius: 50%;
margin-right: 5px;
margin-left: 5px;
&:before {
position: relative;
content: url('../images/icons/book-edit.svg');
flex: 1;
max-width: 20px;
margin-right: 0px;
margin-bottom: -2px;
}
&.modular:before {
content: url('../images/icons/module-four.svg');
}
&.home:before {
content: url('../images/icons/house.svg');
}
&.lock:before {
content: url('../images/icons/touchid-lock.svg');
}
&.badge-published:after, &.badge-unpublished:after {
content: '';
}
&:after, .badge-clock {
display: block;
position: absolute;
top: -2px;
right: -2px;
height: 12px;
width: 12px;
border-radius: 50%;
}
.badge-clock {
border-radius: 0;
content: url('../images/icons/clock-hands.svg');
z-index: 2;
}
.badge-lang {
position: absolute;
bottom: -4px;
bottom: -4px;
left: 50%;
transform: translateX(-50%);
line-height: 1.2;
font-weight: 600;
font-size: 0.6rem;
border-radius: $border-radius;
padding: 0 3px;
}
}
.fjs-info {
flex-grow: 1;
flex-direction: column;
line-height: 1.2;
> b, > em {
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-style: normal;
}
> b {
font-size: 110%;
}
}
.fjs-actions {
display: flex;
align-items: center;
padding-right: 3px;
position: relative;
> * {
margin-right: 3px;
&:last-child {
margin-right: 0;
}
}
}
}
.fjs-children {
position: relative;
display: flex;
align-items: center;
justify-content: center;
height: 28px;
min-width: 50px;
outline: 0;
background-color: transparent;
.badge {
font-size: 0.7rem;
margin-right: 5px;
padding: 0px 3px;
line-height: 1.3;
}
.fa {
display: inline-block !important;
width: auto !important;
font-size: 14px;
}
}
.breadcrumb-node {
font-size: 0.9rem;
&:hover span {
text-decoration: none;
}
& > i.fa {
margin: 0 0.4rem -4px;
}
& > i:not(.fa) {
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
overflow: inherit;
width: 16px;
height: 16px;
border-radius: 50%;
margin-right: 0.35rem;
&:before {
position: relative;
content: url('../images/icons/book-edit.svg');
flex: 1;
max-width: 10px;
}
&.modular:before {
content: url('../images/icons/module-four.svg');
}
&.home:before {
content: url('../images/icons/house.svg');
}
&.lock:before {
content: url('../images/icons/touchid-lock.svg');
}
&.badge-published:after, &.badge-unpublished:after {
content: '';
}
}
}
}
.pages-list {
list-style: none;
margin: 0;
padding: 0;
ul {
list-style: none;
margin: 0;
padding: 0;
}
li {
margin: 0;
padding: 0;
}
.row {
@include transition(all 0.2s ease);
line-height: 2.5rem;
padding-right: 3rem;
@include breakpoint(mobile-only) {
padding-right: 1rem;
}
[data-hint]:after {
line-height: 1 !important;
width: auto !important;
white-space: nowrap !important;
}
p.page-route {
display: block;
margin: 0;
line-height: 1;
font-size: 0.9rem;
word-break: break-all;
.spacer {
display: inline-block;
margin: 0 0.3rem;
}
}
// fix for hint alignment
.hint--bottom:before, .hint--bottom:after {
left: 4px;
}
.hint:after, [data-hint]:after {
border-radius: 2px;
}
.badge.lang {
margin-left: 8px;
}
}
.page-home {
font-size: 1.4rem;
margin-left: 10px;
vertical-align: middle;
}
.page-info {
font-size: 1.1rem;
margin-left: 10px;
vertical-align: middle;
}
.page-edit {
text-overflow: ellipsis;
display: inline-block;
max-width: 100%;
white-space: nowrap;
overflow-x: hidden;
}
.page-item__row {
display: flex;
}
.page-item__toggle {
width: 25px;
line-height: 1;
padding-top: 7px;
}
.page-item__content {
padding: 5px 0;
width: calc(100% - 50px);
}
.page-item__content-name {
line-height: 1;
}
.page-item__content-hint {
line-height: 1.3;
vertical-align: middle;
max-width: 100%;
}
.page-item__tools {
width: 90px;
text-align: right;
font-size: 1.4rem;
.page-view {
margin-right: 4px;
}
}
.page-icon {
color: #0082BA;
font-weight: 700;
&.children-open:before {
content: '\f056';
}
&.children-closed:before{
content: '\f055';
}
&.not-routable {
color: #CE431D;
}
&.not-visible {
color: #999;
}
&.modular {
color: #9055AF;
}
}
#pages-legend {
margin-top: 1.5rem;
text-align: center;
h2, ul, li {
display: inline-block;
}
li {
margin-right: 0.75rem;
}
}
}
#page-filtering {
margin: 0 $padding-default 1rem;
@include clearfix;
@include breakpoint(mobile-only) {
margin: -1rem 1rem 1rem;
}
.page-filters {
width: 60%;
float: left;
@include breakpoint(mobile-only) {
width: 100%;
}
}
.page-search {
position: relative;
width: 40%;
float: left;
padding-left: 2rem;
text-indent: 2.5rem;
&:after {
position: absolute;
right: 15px;
top: 10px;
content: '\f002';
font-family: 'FontAwesome';
}
@include breakpoint(mobile-only) {
width: 100%;
padding-top: 1rem;
padding-left: 0rem;
&:after {
top: 1.5rem;
}
}
}
.page-shortcuts {
@include clearfix;
clear: both;
padding-top:5px;
}
.selectize-control.single.plugin-remove_button .selectize-input,
.selectize-control.multi .selectize-input {
padding: ($leading-margin / 4) ($leading-margin / 4);
&.has-items {
padding-top: 6px;
padding-bottom: 4px;
}
input {
font-size: $core-font-size;
line-height: $core-line-height;
}
.item {
color: #777;
background: #eee;
padding: 2px 10px;
&[data-value='Routable'] {
background: #CE431D;
color: $white;
}
&[data-value='NonRoutable'] {
color: #CE431D;
}
&[data-value='Visible'] {
background: #0082BA;
color: $white;
}
&[data-value='NonVisible'] {
color: #0082BA;
}
&[data-value='Modular'] {
background: #9055AF;
color: $white;
}
&[data-value='NonModular'] {
color: #9055AF;
}
&[data-value='Published'] {
background: #0093B8;
color: $white;
}
&[data-value='NonPublished'] {
color: #0093B8;
}
}
}
}
.admin-form-wrapper {
position: relative;
}
#admin-topbar {
position: absolute;
right: 5px;
height: 50px;
@include breakpoint(mobile-only) {
position: relative;
width: 100%;
right: 0;
padding: 0 .5rem;
margin: -2rem 0 2rem 0;
}
#admin-mode-toggle, #admin-lang-toggle {
@extend %vertical-align;
height: 38px;
display: inline-flex;
vertical-align: inherit;
@include breakpoint(mobile-only) {
float: right;
}
}
#admin-lang-toggle {
z-index: 3;
float: left;
margin-right: 5px;
button {
padding: 0.3rem 0.5rem;
height: 100%;
}
.dropdown-menu {
button {
width: 100%;
}
}
}
.switch-grav {
border: 0;
line-height: 38px;
}
.switch-toggle {
@include breakpoint(mobile-only) {
width: 100%;
}
}
}
@for $i from 0 to 10 {
.depth-#{$i} .row {
padding-left: 3rem * ($i + 1);
}
@include breakpoint(mobile-only) {
.depth-#{$i} .row {
padding-left: 1rem * ($i + 1);
}
}
}
.selectize-route-option {
display: flex;
> :first-child {
flex: 0 0 auto;
width: auto;
margin-right: 10px;
}
> :last-child {
flex: 1 1 auto;
> * {
display: block;
}
}
}
.hidden {
display: none!important;
}
.switch-toggle input[type="radio"] {
display: none!important;
}
[data-acl_picker] {
.permissions-item {
display: flex;
align-items: center;
vertical-align: center;
.selectize-control, a, input, button {
display: inline-flex;
margin: 0 .5rem;
align-items: center;
vertical-align: center;
}
.selectize-control {
flex-grow: 1;
}
.selectize-control {
margin-left: 0;
}
.switch-toggle {
margin: 0;
}
&:last-child {
margin-right: 0;
}
}
}

View File

@@ -0,0 +1,35 @@
#phpinfo {
img { display: none;}
table {
margin: 1rem 0 0;
}
tr {
&:hover {
background: transparent;
}
}
td {
word-wrap: break-word;
overflow: hidden;
h1 {
margin: 0rem (- $padding-default) 0rem !important;
}
}
hr {
border-bottom: 0;
}
h1 {
font-size: 2.3rem;
}
h2 {
font-size: 1.7rem;
margin: 3rem ($padding-default) 0rem !important;
}
}

View File

@@ -0,0 +1,329 @@
/*
* Remodal - v0.2.0
* Flat, responsive, lightweight, easy customizable modal window plugin with declarative state notation and hash tracking.
* http://vodkabears.github.io/remodal/
*
* Made by Ilya Makarov
* Under MIT License
*/
/* ==========================================================================
Remodal necessary styles
========================================================================== */
/* Hide scroll bar */
html.remodal-is-locked {
overflow: hidden;
touch-action: none;
}
/* Anti FOUC */
.remodal, [data-remodal-id] {
display: none;
}
/* Overlay necessary styles */
.remodal-overlay {
position: fixed;
z-index: 99999;
top: -5000px;
right: -5000px;
bottom: -5000px;
left: -5000px;
display: none;
}
/* Necessary styles of the wrapper */
.remodal-wrapper {
position: fixed;
z-index: 100000;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: none;
overflow: auto;
text-align: center;
-webkit-overflow-scrolling: touch;
&:after {
display: inline-block;
height: 100%;
margin-left: -0.05em;
content: '';
}
}
/* Fix iPad, iPhone glitches */
.remodal-overlay,
.remodal-wrapper {
backface-visibility: hidden;
}
/* Modal dialog necessary styles */
.remodal {
position: relative;
outline: none;
text-size-adjust: 100%;
}
.remodal-is-initialized {
/* Disable Anti-FOUC */
display: inline-block;
}
/* ==========================================================================
Remodal's default mobile first theme
========================================================================== */
/* Default theme styles for the background */
.remodal-bg.remodal-is-opening,
.remodal-bg.remodal-is-opened {
@include filter(blur(3px));
}
/* Default theme styles of the overlay */
.remodal-overlay {
background: rgba(43, 46, 56, 0.9);
}
.remodal-overlay.remodal-is-opening,
.remodal-overlay.remodal-is-closing {
animation-duration: 0.3s;
animation-fill-mode: forwards;
}
.remodal-overlay.remodal-is-opening {
animation-name: remodal-overlay-opening-keyframes;
}
.remodal-overlay.remodal-is-closing {
animation-name: remodal-overlay-closing-keyframes;
}
/* Default theme styles of the wrapper */
.remodal-wrapper {
padding: 10px 10px 0;
}
/* Default theme styles of the modal dialog */
.remodal {
box-sizing: border-box;
width: 100%;
margin-bottom: 10px;
padding: 35px;
transform: translate3d(0, 0, 0);
}
.remodal.remodal-is-opening,
.remodal.remodal-is-closing {
animation-duration: 0.3s;
animation-fill-mode: forwards;
}
.remodal.remodal-is-opening {
animation-name: remodal-opening-keyframes;
}
.remodal.remodal-is-closing {
animation-name: remodal-closing-keyframes;
}
/* Vertical align of the modal dialog */
.remodal,
.remodal-wrapper:after {
vertical-align: middle;
}
/* Close button */
.remodal-close {
position: absolute;
top: 0;
left: 0;
display: block;
overflow: visible;
width: 35px;
height: 35px;
margin: 0;
padding: 0;
cursor: pointer;
transition: color 0.2s;
text-decoration: none;
border: 0;
outline: 0;
background: transparent;
}
.remodal-close:before {
font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif !important;
font-size: 25px;
line-height: 35px;
position: absolute;
top: 0;
left: 0;
display: block;
width: 35px;
content: "\00d7";
text-align: center;
}
/* Dialog buttons */
/*.remodal-confirm,
.remodal-cancel {
font: inherit;
display: inline-block;
overflow: visible;
min-width: 110px;
margin: 0;
padding: 12px 0;
cursor: pointer;
transition: background 0.2s;
text-align: center;
vertical-align: middle;
text-decoration: none;
border: 0;
outline: 0;
}
.remodal-confirm {
color: #fff;
background: #81c784;
}
.remodal-confirm:hover,
.remodal-confirm:focus {
background: #66bb6a;
}
.remodal-cancel {
color: #fff;
background: #e57373;
}
.remodal-cancel:hover,
.remodal-cancel:focus {
background: #ef5350;
}
!* Remove inner padding and border in Firefox 4+ for the button tag. *!
.remodal-confirm::-moz-focus-inner,
.remodal-cancel::-moz-focus-inner,
.remodal-close::-moz-focus-inner {
padding: 0;
border: 0;
}*/
/* Keyframes
========================================================================== */
@keyframes remodal-opening-keyframes {
from {
transform: scale(1.05);
opacity: 0;
}
to {
transform: none;
opacity: 1;
}
}
@keyframes remodal-closing-keyframes {
from {
transform: scale(1);
opacity: 1;
}
to {
transform: scale(0.95);
opacity: 0;
}
}
@keyframes remodal-overlay-opening-keyframes {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes remodal-overlay-closing-keyframes {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
/* Media queries
========================================================================== */
@media only screen and (min-width: 641px) {
.remodal {
max-width: 700px;
}
}
/* IE8
========================================================================== */
.lt-ie9 .remodal-overlay {
background: #2b2e38;
}
.lt-ie9 .remodal {
width: 700px;
}
/********* GRAV CUSTOM ********/
.remodal {
padding: 35px 0 0;
text-align: left;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
border-radius: 3px;
}
.remodal ul li {
margin-left: 27px;
list-style-type: square;
}

View File

@@ -0,0 +1,210 @@
[data-simplebar] {
position: relative;
flex-direction: column;
flex-wrap: wrap;
justify-content: flex-start;
align-content: flex-start;
align-items: flex-start;
}
.simplebar-wrapper {
overflow: hidden;
width: inherit;
height: inherit;
max-width: inherit;
max-height: inherit;
}
.simplebar-mask {
direction: inherit;
position: absolute;
overflow: hidden;
padding: 0;
margin: 0;
left: 0;
top: 0;
bottom: 0;
right: 0;
width: auto !important;
height: auto !important;
z-index: 0;
}
.simplebar-offset {
direction: inherit !important;
box-sizing: inherit !important;
resize: none !important;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
padding: 0;
margin: 0;
-webkit-overflow-scrolling: touch;
}
.simplebar-content-wrapper {
direction: inherit;
box-sizing: border-box !important;
position: relative;
display: block;
height: 100%; /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */
width: auto;
max-width: 100%; /* Not required for horizontal scroll to trigger */
max-height: 100%; /* Needed for vertical scroll to trigger */
scrollbar-width: none;
-ms-overflow-style: none;
}
.simplebar-content-wrapper::-webkit-scrollbar,
.simplebar-hide-scrollbar::-webkit-scrollbar {
width: 0;
height: 0;
}
.simplebar-content:before,
.simplebar-content:after {
content: ' ';
display: table;
}
.simplebar-placeholder {
max-height: 100%;
max-width: 100%;
width: 100%;
pointer-events: none;
}
.simplebar-height-auto-observer-wrapper {
box-sizing: inherit !important;
height: 100%;
width: 100%;
max-width: 1px;
position: relative;
float: left;
max-height: 1px;
overflow: hidden;
z-index: -1;
padding: 0;
margin: 0;
pointer-events: none;
flex-grow: inherit;
flex-shrink: 0;
flex-basis: 0;
}
.simplebar-height-auto-observer {
box-sizing: inherit;
display: block;
opacity: 0;
position: absolute;
top: 0;
left: 0;
height: 1000%;
width: 1000%;
min-height: 1px;
min-width: 1px;
overflow: hidden;
pointer-events: none;
z-index: -1;
}
.simplebar-track {
z-index: 1;
position: absolute;
right: 0;
bottom: 0;
pointer-events: none;
overflow: hidden;
}
[data-simplebar].simplebar-dragging .simplebar-content {
pointer-events: none;
user-select: none;
-webkit-user-select: none;
}
[data-simplebar].simplebar-dragging .simplebar-track {
pointer-events: all;
}
.simplebar-scrollbar {
position: absolute;
left: 0;
right: 0;
min-height: 10px;
}
.simplebar-scrollbar:before {
position: absolute;
content: '';
border-radius: 7px;
left: 2px;
right: 2px;
opacity: 0;
transition: opacity 0.2s linear;
}
.simplebar-scrollbar.simplebar-visible:before {
/* When hovered, remove all transitions from drag handle */
opacity: 0.3;
transition: opacity 0s linear;
}
.simplebar-track.simplebar-vertical {
top: 0;
width: 11px;
}
.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
top: 2px;
bottom: 2px;
}
.simplebar-track.simplebar-horizontal {
left: 0;
height: 11px;
}
.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
height: 100%;
left: 2px;
right: 2px;
}
.simplebar-track.simplebar-horizontal .simplebar-scrollbar {
right: auto;
left: 0;
top: 2px;
height: 7px;
min-height: 0;
min-width: 10px;
width: auto;
}
/* Rtl support */
[data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {
right: auto;
left: 0;
}
.hs-dummy-scrollbar-size {
direction: rtl;
position: fixed;
opacity: 0;
visibility: hidden;
height: 500px;
width: 500px;
overflow-y: hidden;
overflow-x: scroll;
}
.simplebar-hide-scrollbar {
position: fixed;
left: 0;
visibility: hidden;
overflow-y: scroll;
scrollbar-width: none;
-ms-overflow-style: none;
}

View File

@@ -0,0 +1,190 @@
table,
tbody,
thead {
display: inline-block;
width: 100%;
}
.gpm-details {
width: 100%;
@include flex(auto);
}
td {
border: 0;
}
tr {
@include transition(all 0.2s ease);
@include display(flex);
@include flex-wrap(wrap);
@include align-items(center);
th, td {
display: block;
@include flex(1);
&.shrink {
@include flex(0);
}
&.double {
@include flex(2);
}
&.triple {
@include flex(3);
}
&.quadruple {
@include flex(4);
}
&.quintuple {
@include flex(5);
}
&.sextuple {
@include flex(6);
}
&.septuple {
@include flex(7);
}
&.octuple {
@include flex(8);
}
&.nontuple {
@include flex(9);
}
&.dectuple {
@include flex(10);
}
&:first-child {
padding-left: $padding-default;
@include breakpoint(mobile-only) {
padding-left: 1rem;
}
}
&:last-child {
padding-right: $padding-default;
@include breakpoint(mobile-only) {
padding-right: 1rem;
}
}
&.left {
text-align: left;
}
&.center {
text-align: center;
}
&.right {
text-align: right;
}
&.right.pad {
padding-right: $padding-default;
.form-data {
padding-right: 0;
}
}
&.left.pad {
padding-left: $padding-default;
}
&.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&.rtl {
text-align: left;
}
}
&.rtl {
direction: rtl;
}
}
th {
font-weight: bold;
}
td {
&.gpm-actions {
line-height: 1;
text-align: right;
position: relative;
padding-right: $padding-default + 1rem;
min-height: 38px;
.gpm-details-expand {
position: absolute;
top: 12px;
right: 12px;
}
}
&.gpm-details {
margin: 0;
padding: 0;
@include breakpoint(mobile-only){
word-wrap: break-word;
}
> .table-wrapper {
display: none;
td {
border-bottom: 0;
}
}
tbody {
width: 100%;
}
}
}
&:last-child {
td {
border-bottom: 0;
}
}
}
table.noflex {
display: table;
table-layout: auto;
thead {
display: table-header-group;
}
tbody {
display: table-row-group;
}
tr {
display: table-row;
td, th {
flex: none;
display: table-cell;
}
}
}

View File

@@ -0,0 +1,125 @@
$tab-label-height: 50px;
// New JS powered tabs
.form-tabs {
.admin-pages &:first-child {
margin-top: -1rem;
}
.admin-pages & {
&.side-tabs {
.tabs-nav {
margin-right: 0 !important;
}
}
.tabs-nav {
margin-right: 180px;
@include breakpoint(mobile-only) {
margin-right: 0 !important;
}
}
}
.tabs-nav {
@include display(flex);
padding-top: 1px;
a {
@include flex(1);
transition: color 0.5s ease, background 0.5s ease;
cursor: pointer;
min-height: $tab-label-height;
text-align:center;
padding: 4px;
display: flex;
align-items: center;
justify-content: center;
}
span {
display: inline-block;
line-height: 1.1;
}
}
&.subtle .tabs-nav {
margin-right: 0 !important;
}
.tabs-content {
.tab__content {
display: none;
padding-top: 2rem;
&.active {
display: block;
}
}
}
&.side-tabs {
display: flex;
background: none;
> .tabs-nav {
width: 20%;
display: block;
padding-top: 1.5rem;
a {
text-align: left;
flex: none;
justify-content: left;
padding-left: 15px;
}
}
> .tabs-content {
width: 80%;
}
}
}
// Old tabs here for posterity!
//.tab-bar {
// @include clearfix;
// margin: 0;
// padding: 0;
// list-style: none;
//
// li {
//
// display: block;
// float: left;
// height: $tab-label-height;
//
// @include breakpoint(mobile-only) {
// width: 100%;
// span, a {
// width: 100%;
// text-align: center;
// }
// }
// }
//
// span, a {
// @extend .default-animation;
// display: inline-block;
// padding: 0 4rem;
// line-height: $tab-label-height;
// }
//}

View File

@@ -0,0 +1,183 @@
.toast-title {
font-weight: bold;
}
.toast-message {
-ms-word-wrap: break-word;
word-wrap: break-word;
}
.toast-message a,
.toast-message label {
color: #ffffff;
}
.toast-message a:hover {
color: #cccccc;
text-decoration: none;
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: #ffffff;
-webkit-text-shadow: 0 1px 0 #ffffff;
text-shadow: 0 1px 0 #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.toast-top-center {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-center {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 5rem;
right: 1.5rem;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
/*overrides*/
}
#toast-container * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#toast-container > div {
position: relative;
overflow: hidden;
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
border-radius: 3px;
background-position: 15px center;
background-repeat: no-repeat;
color: #ffffff;
opacity: 0.9;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90);
filter: alpha(opacity=90);
}
#toast-container > :hover {
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
cursor: pointer;
}
#toast-container > .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
#toast-container > .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
#toast-container.toast-top-center > div,
#toast-container.toast-bottom-center > div {
width: 300px;
margin: auto;
}
#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div {
width: 96%;
margin: auto;
}
.toast-warning {
background-color: #f89406;
.button {
background-color: darken(#f89406, 10);
@include button-color(darken(#f89406, 20));
}
}
.toast-progress {
position: absolute;
left: 0;
bottom: 0;
height: 4px;
background-color: #000000;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Responsive Design*/
@media all and (max-width: 240px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 11em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 18em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
#toast-container > div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}

View File

@@ -0,0 +1,97 @@
// Backups
#backups-stats {
#backups-usage {
position: relative;
margin-bottom: 1.5rem;
h1 {
position: absolute;
right: 1rem;
top: 5px;
}
}
.backups-usage-wrapper {
height: 40px;
background: linear-gradient(90deg, $color-green 0%, $color-lime 20%, $color-yellow 40%, $color-orange 60%, $color-red 80%, $color-maroon 100%);
> div {
float: right;
height: 40px;
&.full {
width: 100%;
}
}
}
}
.backups-content {
#admin-dashboard {
display: block;
#backups-stats {
margin-left: 1rem;
margin-right: 1rem;
h1 {
padding: 0rem;
@include breakpoint(mobile-only) {
font-size: 1.1rem;
}
}
}
}
}
// Scheduler
.scheduler-content {
#admin-main .admin-block & .alert {
margin-top: -1rem;
margin-bottom: 2rem;
}
.secondary-accent {
.button {
float: right;
margin-top: -3px;
}
}
#cron-install {
@extend .default-animation;
padding: 0 1.5rem;
pre {
padding: 0.5rem;
}
&.hide {
display: none;
}
}
}
// Reports
.report-output {
#admin-main .admin-block & .alert {
margin-top: 0;
margin-bottom: 0;
}
td {
.key {
font-weight: bold;
}
}
}
// Direct install
.direct-install-content {
padding: 30px;
.button {
margin-top: 10px;
margin-bottom: 50px;
}
}

View File

@@ -0,0 +1,166 @@
// Body Base
body {
font-weight: 400;
@include breakpoint(mobile-only) {
font-size: 0.8rem;
}
}
// Headings
h1, h2, h3, h4, h5, h6 {
font-weight: 400;
text-rendering: optimizeLegibility;
letter-spacing: -0px;
}
h1 {
font-size: $h1-font-size;
@include breakpoint(mobile-only) {
font-size: 2.5rem;
line-height: 1.2;
margin-bottom: 2.5rem;
}
}
h2 {
@include breakpoint(tablet-range) {
font-size: $h2-font-size - .40;
}
@include breakpoint(mobile-only) {
font-size: $h2-font-size - .50;
}
}
h3 {
@include breakpoint(tablet-range) {
font-size: $h3-font-size - .40;
}
@include breakpoint(mobile-only) {
font-size: $h3-font-size - .50;
}
}
h4 {
@include breakpoint(tablet-range) {
font-size: $h4-font-size - .40;
}
@include breakpoint(mobile-only) {
font-size: $h4-font-size - .50;
}
}
h1 {
letter-spacing: -3px;
}
h2 {
letter-spacing: -2px;
}
h3 {
letter-spacing: -1px;
}
// Icon Tweaks
i.fa {
&.fa-heart, &.fa-heart-o {
&.pulse {
color: #920
}
}
}
code {
vertical-align: inherit;
}
pre {
padding: 2rem;
border-radius: 3px;
code {
background: inherit;
}
}
// Label
.label {
vertical-align: middle;
border-radius: 100%;
height: 1rem;
min-width: 1rem;
line-height: 1rem;
display: inline-block;
text-align: center;
font-size: $core-font-size - 0.3rem;
margin-right: 0.75rem;
}
// Display RESET
form {
.form-display-wrapper {
h1 {
padding: 0 !important;
font-size: 1.7rem !important;
border-bottom-width: 2px !important;
}
h2 {
padding: 0 !important;
font-size: 1.5rem !important;
border-bottom-width: 1px !important;
}
h3 {
padding: 0 !important;
font-size: 1.3rem !important;
border-bottom-width: 1px !important;
}
h4 {
padding: 0 !important;
font-size: 1.1rem !important;
}
blockquote {
padding: 15px;
p {
font-size: 0.9rem;
color: inherit;
&:last-child {
margin-bottom: 0;
}
}
}
code, pre {
font-size: 0.8rem;
}
table {
border-collapse: collapse;
width: 100%;
th {
padding: 10px !important;
&:last-child {
border-right: none;
}
}
td {
padding: 10px !important;
&:last-child {
border-right: none;
}
}
tr {
&:last-child {
border-bottom: none;
}
}
}
}
}

View File

@@ -0,0 +1,9 @@
.pointer-events-none {
pointer-events: none;
}
@include breakpoint(mobile-only) {
.hidden-mobile {
display: none!important;
}
}

View File

@@ -0,0 +1,268 @@
$dark-text: #333;
$transparent-image: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMDAwMDAwP/2wBDAQEBAQEBAQIBAQICAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wAARCAAyADIDAREAAhEBAxEB/8QAGgABAAMBAQEAAAAAAAAAAAAAAAQFBwYJCv/EAD4QAAAGAAUBBQQGBwkAAAAAAAECAwQFBhITFBUWCAARGCUmByh21iQ3OFWVtRciJ1SGl7RCR2NmZ5amxub/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A+xep1OR6apFa9XpZlLREsyUqbdvU1F30iSRfLtphFZZGYbQLYrIraBWKYxVjKAoYgAQQExigkKnI3S1J9RkWsyb0hm9jbYrFyCi6VqNHUEjVrMIpsW7Z1EC9cqVxcWxRfAmcDkxnTETAUJtw96HbuAeUcH1e7cw8v1HJtLoNu2XkGblcfWzs3Jw4iYcXebCE2QtkddKqn05xaL1vd2bKNqaspIJoJVU0jQTtXUwsm+buXUuLJynXFwbGFiChxOTGRMBMJQVO2R3TVHLUW9IvZaXlnqlsbuKmmg+jiRz5BtDoorLTDmBclelcwKxjFKiZMEzEEDiImKUKWp1OR6apFa9XpZlLREsyUqbdvU1F30iSRfLtphFZZGYbQLYrIraBWKYxVjKAoYgAQQExihoXix9nX3Ldfw6C+Y+wZ7U5C1XSRWi+oxN6zpDdkpIRatsjSUGONakl2zdimjMNWtcUcvRiHT4SthXOB0wOfAIpgYoJCQtUbak6dTk3qnT2o9jY948j40ktVQqssRqe9KKXo7V45SZJOXkhqXO4ALIQOAHSygAgTbh6H27w0fTd01fNeH/tDytFpeN7jq+TbRj1b/Jw5Go7j9+PLDAE2Qj6rG1VO405Rkp1CKMo2QeM4+SPLWoLVLHakvSalFO6eNknqTZ5Ialtt4AyADiBEsoBICpx9VukctKdRijJnd271SPi0rZJHoMiaqpINnDFRGHauq4m5ZDLunwFcigcTqAcmMQTApQpanIWq6SK0X1GJvWdIbslJCLVtkaSgxxrUku2bsU0Zhq1rijl6MQ6fCVsK5wOmBz4BFMDFDQuA9LH7/Sv5lPPmrsHFcw8UPoDbuD7R6w3bV8m1G3+S7doNLX8rN5Bm52cbDk4cA4sRQcw4P7tG3bprfR/NdXosr9If0vceN6V3j2jk2HJ14ajI78aePuID7KP+fee/wALbVxb/ceu13I/8HKyf7eP9UHD+D+8vuO6a31hwrSaLK/SH9E27kmqd49o5NiztAGoyO7Anj7yA4f4ofX+48H2j0ftOk5NqNv863HX6qv5WbyDKyck2HJxYxxYSg5h4ofQG3cH2j1hu2r5NqNv8l27QaWv5WbyDNzs42HJw4BxYig8H/8AqH/xL/03YJtskKrdI5GL6c02TO7t3qchKK1ONPQZE1VSQct3ya0w6a1xNyyGXdMRM2Bc4nUAh8AgmJigj5CqxtVUp1xTZKdQijKSj2byQjTy1qC1Sx3R6KoneiNXjZJ6k2eR+mc7gAMgAgCdLKECBCp/ofcfEv8ATd00nCuYftDytFquSbdpOTbRj1bDOxZGo7id2PLHAEKPj7VG2pS43FR6p09qPZKQZs5CSJLVUKrLEdEoqadFI6eOUmSTl5H6Ztt4CyECCJEsoRIC2R9qukijKdOaj1nSG7JOPlEqnJEoMca1JLuXD5RaHdOq4o5ejEOmIGcggcDpgQmMRTEpQurZIVW6RyMX05psmd3bvU5CUVqcaegyJqqkg5bvk1ph01riblkMu6YiZsC5xOoBD4BBMTFDPeA9U/7/AHX+ZTP5q7BoVsqcd01RyN6oqz2Wl5Z6nU3De2KIPo4kc+QczCyyKMO2gXJXpXMCiUpjLGTBMxwEgiJTFBH1OOulVU6jJRZ63u7NlJWxKLj1EEqqaRoJ3TWHRUYuGzqXFk5TriAuSg+BQ4nPgOmAlAoQqf70O48/8o4PpNp4f5fqOTarX7jvXIM3K4+jk5WThxHxYu8uEIUfbJG6WpTpzlEWTekM3slU0pSPTXStRo6gkdOodZR84cuogXrlSuIA5MDEEzgc+AiYiUSgtlskemqRRotFRZS0RLMk7Y4cWxNd9IkkXy7mHWRRWh3MC2KyK2gUTFKZEygKGOInEBKUoXVsqcd01RyN6oqz2Wl5Z6nU3De2KIPo4kc+QczCyyKMO2gXJXpXMCiUpjLGTBMxwEgiJTFDPfFj7RfuWlfh078x9g6ip1OR6apFa9XpZlLREsyUqbdvU1F30iSRfLtphFZZGYbQLYrIraBWKYxVjKAoYgAQQExigkKnI3S1J9RkWsyb0hm9jbYrFyCi6VqNHUEjVrMIpsW7Z1EC9cqVxcWxRfAmcDkxnTETAUJtw96HbuAeUcH1e7cw8v1HJtLoNu2XkGblcfWzs3Jw4iYcXebCE2QtkddKqn05xaL1vd2bKNqaspIJoJVU0jQTtXUwsm+buXUuLJynXFwbGFiChxOTGRMBMJQVO2R3TVHLUW9IvZaXlnqlsbuKmmg+jiRz5BtDoorLTDmBclelcwKxjFKiZMEzEEDiImKUKWp1OR6apFa9XpZlLREsyUqbdvU1F30iSRfLtphFZZGYbQLYrIraBWKYxVjKAoYgAQQExihoXix9nX3Ldfw6C+Y+wOrH6uoX41jvyKx9gUH7LD/4K9pX9ZauwcV0f/3h/wAJf9m7BxVB+1O/+NfaV/R2rsDqx+sWF+Co789sfYNq6sfq6hfjWO/IrH2Dz27B/9k=';
/* Admin settings */
.colorbar {
[data-hint]:after {
width: 300px!important;
margin-left: -300px;
}
&.current-scheme, &.predefined-scheme {
padding-bottom: 10px;
span {
color: transparent;
}
}
&.predefined-scheme:hover {
cursor: pointer;
span {
color: white;
}
.light span {
color: black;
}
}
.colorbar-element-container {
width: 9rem;
float: left;
display: block;
text-align: center;
background: white;
margin-bottom: 1px;
margin-right: 1px;
//background-image: url($transparent-image);
}
.colorbar-element {
width: 100%;
text-align: center;
height: 4rem;
//border: 1px solid #ccc;
border-top: 0;
span {
font-size: .7rem;
}
color: #333;
input {
color: #333;
width: 100% !important;
}
&.light-text {
color: #fff;
& input {
color: #fff;
}
}
}
.colorbar-title {
font-size: 0.8rem;
//border: 1px solid #ccc;
font-weight: bold;
padding: 1px;
background-color: rgba(#000, 0.05);
}
input {
width: 100%;
border: none;
font-size: 0.8rem;
text-align: center;
border-radius: 0;
height: 35px;
position: absolute;
background: transparent;
&:focus {
outline: none;
}
}
.choose-predefined-scheme {
cursor: pointer;
}
}
// Admin preview
$ap-width: 8rem;
$ap-height: 10rem;
$nav-width: 25%;
$toolbar-height: 10%;
$ap-radius: 4px;
.admin-preview-wrapper {
display: inline-block;
width: $ap-width;
position: relative;
margin-right: 2rem;
}
.admin-preview-title {
text-align: center;
}
.admin-preview {
height: $ap-height;
position: relative;
border-radius: $ap-radius;
border-width: 2px !important;
}
.ap-overlay {
cursor: pointer;
opacity: 0;
position: absolute;
top:0;
left: 0;
right: 0;
bottom: 0;
border-radius: $ap-radius;
z-index: 2;
text-align: center;
transition: opacity .4s ease;
&:hover {
opacity: 1;
background: rgba(0,0,0,0.4);
}
b {
display: inline-block;
font-weight: normal;
margin-top: ($ap-height / 2) - 1rem;
background: #111;
color: #bbb;
border-radius: $ap-radius;
padding: 4px 10px;
&:hover {
color: #fff;
background: #000
}
}
}
.ap-sidebar {
position: absolute;
width: $nav-width;
top: 0;
left: 0;
bottom: 0;
}
.ap-logo {
height: 10%;
text-align: center;
&::after {
display: block;
position: relative;
top: 50%;
margin: 0 auto;
transform: translateY(-50%);
content: '';
height: 8px;
width: 25%;
}
}
.ap-nav {
padding: 5px 10px;
}
.ap-text, .ap-text::before, .ap-text::after {
margin-top: 4px;
position: relative;
display: block;
margin-bottom: 3px;
height: 2px;
content: '';
}
.ap-text::before {
margin-top: 0;
top: 7px;
}
.ap-text::after {
margin-top: 0;
top: 9px;
}
.ap-active {
display: block;
margin: 19px -10px 0;
margin-bottom: 5px;
padding: 5px 10px 5px 7px;
border-left-width: 3px;
border-left-style: solid;
&::after {
display: block;
content: '';
height: 2px;
}
}
.ap-toolbar {
position: absolute;
left: $nav-width;
right: 0;
height: $toolbar-height;
padding: 0 10px;
&::after {
display: block;
position: relative;
top: 50%;
transform: translateY(-50%);
content: '';
width: 33%;
height: 4px;
}
}
.ap-button {
float: right;
position: relative;
top: 50%;
transform: translateY(-50%);
height: 8px;
width: 25px;
}
.ap-page {
position: absolute;
top: $toolbar-height;
left: $nav-width;
right: 0;
bottom: 0;
padding: 10px;
}
.ap-content {
height: 100%;
overflow: hidden;
}
.ap-title {
display: block;
height: 4px;
width: 25%;
margin: 8px 10px 5px;
}
.ap-content {
.ap-text {
margin-left: 10px;
margin-right: 10px;
}
}
.ap-update, .ap-notice, .ap-critical {
margin-top: 19px;
display: block;
content: '';
padding: 5px 10px;
&::after {
display: block;
content: '';
height: 2px;
width: 50%;
}
}
.ap-update {
margin-top: 3px;
}

View File

@@ -0,0 +1,5 @@
@import "buttons";
@import "colorpicker";
@import "datetimepicker";
@import "finderjs";
@import "toggle-switch";

View File

@@ -0,0 +1,120 @@
// Add percentage of white to a color
@function tint($color, $percent) {
@return mix(white, $color, $percent);
}
// Add percentage of black to a color
@function shade($color, $percent) {
@return mix(black, $color, $percent);
}
@function _linear-positions-parser($pos) {
$type: type-of(nth($pos, 1));
$spec: null;
$degree: null;
$side: null;
$corner: null;
$length: length($pos);
// Parse Side and corner positions
@if ($length > 1) {
@if nth($pos, 1) == "to" { // Newer syntax
$side: nth($pos, 2);
@if $length == 2 { // eg. to top
// Swap for backwards compatability
$degree: _position-flipper(nth($pos, 2));
}
@else if $length == 3 { // eg. to top left
$corner: nth($pos, 3);
}
}
@else if $length == 2 { // Older syntax ("top left")
$side: _position-flipper(nth($pos, 1));
$corner: _position-flipper(nth($pos, 2));
}
@if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
@else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
@else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
@else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
$spec: to $side $corner;
}
@else if $length == 1 {
// Swap for backwards compatability
@if $type == string {
$degree: $pos;
$spec: to _position-flipper($pos);
}
@else {
$degree: -270 - $pos; //rotate the gradient opposite from spec
$spec: $pos;
}
}
$degree: unquote($degree + ",");
$spec: unquote($spec + ",");
@return $degree $spec;
}
@function _position-flipper($pos) {
@return if($pos == left, right, null)
if($pos == right, left, null)
if($pos == top, bottom, null)
if($pos == bottom, top, null);
}
@mixin placeholder {
$placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
@each $placeholder in $placeholders {
&:#{$placeholder}-placeholder {
@content;
}
}
}
@mixin linear-gradient($pos, $G1, $G2: null,
$G3: null, $G4: null,
$G5: null, $G6: null,
$G7: null, $G8: null,
$G9: null, $G10: null,
$fallback: null) {
// Detect what type of value exists in $pos
$pos-type: type-of(nth($pos, 1));
$pos-spec: null;
$pos-degree: null;
// If $pos is missing from mixin, reassign vars and add default position
@if ($pos-type == color) or (nth($pos, 1) == "transparent") {
$G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
$G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
$pos: null;
}
@if $pos {
$positions: _linear-positions-parser($pos);
$pos-degree: nth($positions, 1);
$pos-spec: nth($positions, 2);
}
$full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
// Set $G1 as the default fallback color
$fallback-color: nth($G1, 1);
// If $fallback is a color use that color as the fallback color
@if (type-of($fallback) == color) or ($fallback == "transparent") {
$fallback-color: $fallback;
}
background-color: $fallback-color;
background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
}

View File

@@ -0,0 +1,91 @@
%button {
display: inline-block;
padding: 0.5rem 1rem;
font-weight: 400;
cursor: pointer;
vertical-align: middle;
outline: none;
&:active {
margin: 1px 0 -1px 0;
}
i {
//margin-right: 5px;
}
&.button-small {
padding: 4px 8px;
font-size: 95%;
}
&.button-x-small {
padding: 2px 5px;
font-size: 90%;
}
&:disabled {
opacity: .6;
cursor: no-drop;
}
}
@mixin button-color($color, $text:$white, $lighter:null) {
color: rgba(red($text), green($text), blue($text), opacity($text) - 0.15);
border-radius: $border-radius;
background: $color;
@if ($lighter == null) {
$lighter: lightness($color) > 50;
}
@if ($lighter) {
&:focus,
&:hover {
background: shade($color,15%);
color: $text;
}
&.dropdown-toggle {
border-left: 1px solid lighten($color, 5%);
}
} @else {
&:focus,
&:hover {
background: tint($color,15%);
color: $text;
}
&.dropdown-toggle {
border-left: 1px solid darken($color, 5%);
}
}
}
@mixin button-color-border($color, $text:$white, $lighter:null) {
color: $text;
border-radius: $border-radius;
border: 1px solid $color;
@if ($lighter == null) {
$lighter: lightness($color) > 50;
}
@if ($lighter) {
&:hover {
border-color: shade($color,15%);
color: $text;
}
&.dropdown-toggle {
border-left: 1px solid lighten($color, 5%);
}
} @else {
&:hover {
border-color: tint($color,15%);
color: $text;
}
&.dropdown-toggle {
border-left: 1px solid darken($color, 5%);
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,466 @@
.datetime-picker-wrapper {
position: relative;
input {
padding-right: 2.5rem;
}
.field-icons {
position: absolute;
top: 0;
right: 10px;
bottom: 0;
line-height: 2.5rem;
}
}
.collapse {
display: none;
&.in {
display: block;
}
tr &.in {
display: table-row;
}
tbody &.in {
display: table-row-group;
}
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
@include transition(height .35s ease, visibility .35s ease);
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
/* Bootstrap variables styling */
.bootstrap-datetimepicker-widget {
&.dropdown-menu {
position: absolute;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
background-color: #fff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, .15);
border-radius: 4px;
box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
.list-unstyled {
padding-left: 0;
list-style: none;
}
.collapse {
display: none;
visibility: hidden;
&.in {
display: block;
visibility: visible;
}
}
.datepicker-years .picker-switch {
cursor: default !important;
background: inherit !important;
}
.table-condensed > thead > tr > th {
padding: 5px;
}
table {
display: table;
thead {
display: table-header-group;
}
tbody {
display: table-row-group;
}
tr {
display: table-row;
&:hover {
background: inherit;
}
th, td {
border: 0;
display: table-cell;
&:first-child {
padding-left: inherit;
}
&:last-child {
padding-right: inherit;
}
}
}
}
}
/*!
* Datetimepicker for Bootstrap 3
* ! version : 4.7.14
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/
$bs-datetimepicker-timepicker-font-size: 1.2em !default;
$bs-datetimepicker-active-bg: white !default;
$bs-datetimepicker-active-color: blue !default;
$bs-datetimepicker-border-radius: 3px !default;
$bs-datetimepicker-btn-hover-bg: #ddd !default;
$bs-datetimepicker-disabled-color: #ccc !default;
$bs-datetimepicker-alternate-color: #ccc !default;
$bs-datetimepicker-secondary-border-color: #ccc !default;
$bs-datetimepicker-secondary-border-color-rgba: rgba(0, 0, 0, 0.2) !default;
$bs-datetimepicker-primary-border-color: white !default;
$bs-datetimepicker-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25) !default;
.bootstrap-datetimepicker-widget {
list-style: none;
&.dropdown-menu {
margin: 2px 0;
padding: 4px;
width: 19em;
&.timepicker-sbs {
@media (min-width: 768px) {
width: 38em;
}
@media (min-width: 992px) {
width: 38em;
}
@media (min-width: 1200px) {
width: 38em;
}
}
&:before, &:after {
content: '';
display: inline-block;
position: absolute;
}
&.bottom {
&:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid $bs-datetimepicker-secondary-border-color;
border-bottom-color: $bs-datetimepicker-secondary-border-color-rgba;
top: -7px;
left: 7px;
}
&:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid $bs-datetimepicker-primary-border-color;
top: -6px;
left: 8px;
}
}
&.top {
&:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 7px solid $bs-datetimepicker-secondary-border-color;
border-top-color: $bs-datetimepicker-secondary-border-color-rgba;
bottom: -7px;
left: 6px;
}
&:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid $bs-datetimepicker-primary-border-color;
bottom: -6px;
left: 7px;
}
}
&.pull-right {
&:before {
left: auto;
right: 6px;
}
&:after {
left: auto;
right: 7px;
}
}
}
.list-unstyled {
margin: 0;
}
a[data-action] {
padding: 6px 0;
}
a[data-action]:active {
box-shadow: none;
}
.timepicker-hour, .timepicker-minute, .timepicker-second {
width: 54px;
font-weight: bold;
font-size: $bs-datetimepicker-timepicker-font-size;
margin: 0;
}
button[data-action] {
padding: 6px;
}
.btn[data-action="incrementHours"]::after {
@extend .sr-only;
content: "Increment Hours";
}
.btn[data-action="incrementMinutes"]::after {
@extend .sr-only;
content: "Increment Minutes";
}
.btn[data-action="decrementHours"]::after {
@extend .sr-only;
content: "Decrement Hours";
}
.btn[data-action="decrementMinutes"]::after {
@extend .sr-only;
content: "Decrement Minutes";
}
.btn[data-action="showHours"]::after {
@extend .sr-only;
content: "Show Hours";
}
.btn[data-action="showMinutes"]::after {
@extend .sr-only;
content: "Show Minutes";
}
.btn[data-action="togglePeriod"]::after {
@extend .sr-only;
content: "Toggle AM/PM";
}
.btn[data-action="clear"]::after {
@extend .sr-only;
content: "Clear the picker";
}
.btn[data-action="today"]::after {
@extend .sr-only;
content: "Set the date to today";
}
.picker-switch {
text-align: center;
&::after {
@extend .sr-only;
content: "Toggle Date and Time Screens";
}
td {
padding: 0;
margin: 0;
height: auto;
width: auto;
line-height: inherit;
span {
line-height: 2.5;
height: 2.5em;
width: 100%;
}
}
}
table {
width: 100%;
margin: 0;
& td,
& th {
text-align: center;
border-radius: $bs-datetimepicker-border-radius;
}
& th {
height: 29px;
line-height: 29px;
width: 29px;
&.picker-switch {
width: 145px;
}
&.disabled,
&.disabled:hover {
background: none;
color: $bs-datetimepicker-disabled-color;
cursor: not-allowed;
}
&.prev::after {
@extend .sr-only;
content: "Previous Month";
}
&.next::after {
@extend .sr-only;
content: "Next Month";
}
}
& thead tr:first-child th {
cursor: pointer;
&:hover {
background: $bs-datetimepicker-btn-hover-bg;
}
}
& td {
height: 54px;
line-height: 54px;
width: 54px;
&.cw {
font-size: .8em;
height: 20px;
line-height: 20px;
color: $bs-datetimepicker-alternate-color;
}
&.day {
height: 29px;
line-height: 29px;
width: 29px;
}
&.day:hover,
&.hour:hover,
&.minute:hover,
&.second:hover {
background: $bs-datetimepicker-btn-hover-bg;
cursor: pointer;
}
&.old,
&.new {
color: $bs-datetimepicker-alternate-color;
}
&.today {
position: relative;
&:before {
content: '';
display: inline-block;
border: 0 0 7px 7px solid transparent;
border-bottom-color: $bs-datetimepicker-active-bg;
border-top-color: $bs-datetimepicker-secondary-border-color-rgba;
position: absolute;
bottom: 4px;
right: 4px;
}
}
&.active,
&.active:hover {
background-color: $bs-datetimepicker-active-bg;
color: $bs-datetimepicker-active-color;
text-shadow: $bs-datetimepicker-text-shadow;
}
&.active.today:before {
border-bottom-color: #fff;
}
&.disabled,
&.disabled:hover {
background: none;
color: $bs-datetimepicker-disabled-color;
cursor: not-allowed;
}
span {
display: inline-block;
width: 54px;
height: 54px;
line-height: 54px;
margin: 2px 1.5px;
cursor: pointer;
border-radius: $bs-datetimepicker-border-radius;
&:hover {
background: $bs-datetimepicker-btn-hover-bg;
}
&.active {
background-color: $bs-datetimepicker-active-bg;
color: $bs-datetimepicker-active-color;
text-shadow: $bs-datetimepicker-text-shadow;
}
&.old {
color: $bs-datetimepicker-alternate-color;
}
&.disabled,
&.disabled:hover {
background: none;
color: $bs-datetimepicker-disabled-color;
cursor: not-allowed;
}
}
}
}
&.usetwentyfour {
td.hour {
height: 27px;
line-height: 27px;
}
}
}
.input-group.date {
& .input-group-addon {
cursor: pointer;
}
}

View File

@@ -0,0 +1,161 @@
.fjs-container {
display: flex;
font-size: .9em;
min-height: 400px;
overflow: auto;
overflow-x: scroll;
&:focus {
outline: none;
}
.fjs-col {
border-right: solid 1px lightgray;
max-height: 600px;
min-height: inherit;
min-width: 200px;
overflow-y: auto;
}
.fjs-item a {
color: black;
justify-content: space-between;
padding: 5px;
text-decoration: none;
display: flex;
align-items: center;
}
.fjs-item a:focus {
outline: none;
}
.fjs-item a span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.fjs-item a span i {
padding-right: 5px;
}
//.fjs-active a {
// background-color: #DEDEDE;
//}
//
//.fjs-col:nth-last-child(2) .fjs-active a,
//.fjs-col:last-child .fjs-active a {
// background-color: dodgerblue;
// color: white;
//}
.info-container {
display: flex;
align-items: center;
}
.fjs-list {
list-style: none;
margin: 0;
padding: 0;
}
.fjs-item-content {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.fa-caret-right {
//color: gray;
padding: 0 0 0 .5em;
}
.fjs-col:nth-last-child(2) .fjs-active a .fa-caret-right,
.fjs-col:last-child .fjs-active a .fa-caret-right {
//color: white;
}
.leaf-col {
align-items: center;
border-right: 0;
display: flex;
flex: 2;
justify-content: center;
padding: 0 1.5em;
}
.leaf-row {
display: flex;
flex-direction: column;
font-size: 1.3em;
text-align: center;
}
.leaf-row .fa {
//color: #A7A7A7;
font-size: 4em;
margin: 20px 0;
}
.leaf-row .fa-refresh {
font-size: 2em;
}
.leaf-col .meta {
font-size: .7em;
}
.leaf-col .meta strong {
//color: #C1C1C1;
font-weight: normal;
}
.leaf-col .meta:first-of-type {
margin-top: 1.5em;
}
}
.fjs-path-bar {
font-size: 0.9em;
padding: .25rem .5rem;
//background: #f6f6f6;
//border-bottom: 1px solid #eee;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
[data-breadcrumb-node] {
cursor: pointer;
&:hover {
span {
text-decoration: underline;
}
}
}
.fa-chevron-right {
font-size: .8em;
}
}
[data-parents-field-name] {
font-weight: bold;
}
.fjs-container, .fjs-path-bar {
.fa-folder {
color: #90E4FF;
}
.fa-file-o {
color: #A7A7A7;
}
.fa-external-link {
color: #629EFF;
font-size: smaller;
}
}

View File

@@ -0,0 +1,87 @@
$ir_slider_width: 230px;
$ir_slider_height: 20px;
$ir_counter_width: 60px;
$ir_margin: 10px 0;
input[type=range].rangefield {
display: inline-block;
vertical-align: middle;
-webkit-appearance: none;
margin: $ir_margin;
width: $ir_slider_width;
background: none;
&:focus {
outline: none;
}
&::-webkit-slider-runnable-track {
width: $ir_slider_width;
height: $ir_slider_height;
cursor: pointer;
animate: 0.2s;
border-radius: 25px;
}
&::-webkit-slider-thumb {
height: 24px;
width: 35px;
border-radius: 6px;
cursor: pointer;
-webkit-appearance: none;
margin-top: -3px;
}
&::-moz-focus-outer {
border: 0;
}
&::-moz-range-track {
width: $ir_slider_width;
height: $ir_slider_height;
cursor: pointer;
animate: 0.2s;
border-radius: 25px;
}
&::-moz-range-progress {
height: $ir_slider_height;
border-radius: 25px;
}
&::-moz-range-thumb {
height: 24px;
width: 35px;
border-radius: 6px;
cursor: pointer;
}
&::-ms-track {
width: $ir_slider_width;
height: $ir_slider_height;
cursor: pointer;
animate: 0.2s;
background: transparent;
border-color: transparent;
color: transparent;
}
&::-ms-fill-lower, input[type=range]::-ms-fill-upper {
border-radius: 50px;
}
&::-ms-thumb {
height: 24px;
width: 35px;
border-radius: 6px;
cursor: pointer;
}
& ~ input[type=number].rangefield {
background: none;
display: inline-block;
width: $ir_counter_width;
text-align: right;
border: 0;
line-height: 16px;
vertical-align: middle;
padding: 0 0 0 5px;
}
}
span.range-append {
display: inline-block;
line-height: 20px;
vertical-align: middle;
margin-left: -3px;
}

View File

@@ -0,0 +1,18 @@
@mixin native-scrollbars($bar, $track) {
& {
scrollbar-width: thin;
scrollbar-color: $bar $track;
}
/* Works on Chrome/Edge/Safari */
&::-webkit-scrollbar {
width: 6px;
height: 6px;
}
&::-webkit-scrollbar-track {
background: $track;
}
&::-webkit-scrollbar-thumb {
background-color: $bar;
}
}

View File

@@ -0,0 +1,20 @@
.switch-toggle {
display: inline-block;
display: inline-flex;
overflow: hidden;
border-radius: $form-border-radius;
line-height: 35px;
input[type=radio] {
position: absolute;
visibility: hidden;
display: none;
}
label {
display: inline-block;
cursor: pointer;
padding: 0 15px;
white-space: nowrap;
}
}

View File

@@ -0,0 +1,8 @@
//************************************************************************//
// These mixins/functions are deprecated
// They will be removed in the next MAJOR version release
//************************************************************************//
@mixin inline-block {
display: inline-block;
@warn "inline-block mixin is deprecated and will be removed in the next major version release";
}

View File

@@ -0,0 +1,77 @@
// Settings
@import "settings/prefixer";
@import "settings/px-to-em";
// Custom Helpers
@import "helpers/convert-units";
@import "helpers/gradient-positions-parser";
@import "helpers/is-num";
@import "helpers/linear-angle-parser";
@import "helpers/linear-gradient-parser";
@import "helpers/linear-positions-parser";
@import "helpers/linear-side-corner-parser";
@import "helpers/radial-arg-parser";
@import "helpers/radial-positions-parser";
@import "helpers/radial-gradient-parser";
@import "helpers/render-gradients";
@import "helpers/shape-size-stripper";
@import "helpers/str-to-num";
// Custom Functions
@import "functions/assign";
@import "functions/color-lightness";
@import "functions/flex-grid";
@import "functions/golden-ratio";
@import "functions/grid-width";
@import "functions/modular-scale";
@import "functions/px-to-em";
@import "functions/px-to-rem";
@import "functions/strip-units";
@import "functions/tint-shade";
@import "functions/transition-property-name";
@import "functions/unpack";
// CSS3 Mixins
@import "css3/animation";
@import "css3/appearance";
@import "css3/backface-visibility";
@import "css3/background";
@import "css3/background-image";
@import "css3/border-image";
@import "css3/border-radius";
@import "css3/box-sizing";
@import "css3/calc";
@import "css3/columns";
@import "css3/filter";
@import "css3/flex-box";
@import "css3/font-face";
@import "css3/hyphens";
@import "css3/hidpi-media-query";
@import "css3/image-rendering";
@import "css3/keyframes";
@import "css3/linear-gradient";
@import "css3/perspective";
@import "css3/radial-gradient";
@import "css3/transform";
@import "css3/transition";
@import "css3/user-select";
@import "css3/placeholder";
// Addons & other mixins
@import "addons/button";
@import "addons/clearfix";
@import "addons/directional-values";
@import "addons/ellipsis";
@import "addons/font-family";
@import "addons/hide-text";
@import "addons/html5-input-types";
@import "addons/position";
@import "addons/prefixer";
@import "addons/retina-image";
@import "addons/size";
@import "addons/timing-functions";
@import "addons/triangle";
@import "addons/word-wrap";
// Soon to be deprecated Mixins
@import "bourbon-deprecated-upcoming";

View File

@@ -0,0 +1,374 @@
@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) {
@if type-of($style) == string and type-of($base-color) == color {
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == string and type-of($base-color) == number {
$padding: $text-size;
$text-size: $base-color;
$base-color: #4294f0;
@if $padding == inherit {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == color and type-of($base-color) == color {
$base-color: $style;
$style: simple;
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == color and type-of($base-color) == number {
$padding: $text-size;
$text-size: $base-color;
$base-color: $style;
$style: simple;
@if $padding == inherit {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == number {
$padding: $base-color;
$text-size: $style;
$base-color: #4294f0;
$style: simple;
@if $padding == #4294f0 {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
}
}
// Selector Style Button
//************************************************************************//
@mixin buttonstyle($type, $b-color, $t-size, $pad) {
// Grayscale button
@if $type == simple and $b-color == grayscale($b-color) {
@include simple($b-color, true, $t-size, $pad);
}
@if $type == shiny and $b-color == grayscale($b-color) {
@include shiny($b-color, true, $t-size, $pad);
}
@if $type == pill and $b-color == grayscale($b-color) {
@include pill($b-color, true, $t-size, $pad);
}
@if $type == flat and $b-color == grayscale($b-color) {
@include flat($b-color, true, $t-size, $pad);
}
// Colored button
@if $type == simple {
@include simple($b-color, false, $t-size, $pad);
}
@else if $type == shiny {
@include shiny($b-color, false, $t-size, $pad);
}
@else if $type == pill {
@include pill($b-color, false, $t-size, $pad);
}
@else if $type == flat {
@include flat($b-color, false, $t-size, $pad);
}
}
// Simple Button
//************************************************************************//
@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
$inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
$stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
$text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border: grayscale($border);
$inset-shadow: grayscale($inset-shadow);
$stop-gradient: grayscale($stop-gradient);
$text-shadow: grayscale($text-shadow);
}
border: 1px solid $border;
border-radius: 3px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: bold;
@include linear-gradient ($base-color, $stop-gradient);
padding: $padding;
text-decoration: none;
text-shadow: 0 1px 0 $text-shadow;
background-clip: padding-box;
&:hover:not(:disabled) {
$base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
$inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
$stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
$inset-shadow-hover: grayscale($inset-shadow-hover);
$stop-gradient-hover: grayscale($stop-gradient-hover);
}
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
cursor: pointer;
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
$inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
@if $grayscale == true {
$border-active: grayscale($border-active);
$inset-shadow-active: grayscale($inset-shadow-active);
}
border: 1px solid $border-active;
box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active;
}
}
// Shiny Button
//************************************************************************//
@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
$border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
$fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
$inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
$second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
$text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
$third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border: grayscale($border);
$border-bottom: grayscale($border-bottom);
$fourth-stop: grayscale($fourth-stop);
$inset-shadow: grayscale($inset-shadow);
$second-stop: grayscale($second-stop);
$text-shadow: grayscale($text-shadow);
$third-stop: grayscale($third-stop);
}
border: 1px solid $border;
border-bottom: 1px solid $border-bottom;
border-radius: 5px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: bold;
@include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
padding: $padding;
text-align: center;
text-decoration: none;
text-shadow: 0 -1px 1px $text-shadow;
&:hover:not(:disabled) {
$first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
$second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
$third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
$fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
@if $grayscale == true {
$first-stop-hover: grayscale($first-stop-hover);
$second-stop-hover: grayscale($second-stop-hover);
$third-stop-hover: grayscale($third-stop-hover);
$fourth-stop-hover: grayscale($fourth-stop-hover);
}
cursor: pointer;
@include linear-gradient(top, $first-stop-hover 0%,
$second-stop-hover 50%,
$third-stop-hover 50%,
$fourth-stop-hover 100%);
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
@if $grayscale == true {
$inset-shadow-active: grayscale($inset-shadow-active);
}
box-shadow: inset 0 0 20px 0 $inset-shadow-active;
}
}
// Pill Button
//************************************************************************//
@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
$border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
$inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
$stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
$text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border-bottom: grayscale($border-bottom);
$border-sides: grayscale($border-sides);
$border-top: grayscale($border-top);
$inset-shadow: grayscale($inset-shadow);
$stop-gradient: grayscale($stop-gradient);
$text-shadow: grayscale($text-shadow);
}
border: 1px solid $border-top;
border-color: $border-top $border-sides $border-bottom;
border-radius: 16px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: normal;
line-height: 1;
@include linear-gradient ($base-color, $stop-gradient);
padding: $padding;
text-align: center;
text-decoration: none;
text-shadow: 0 -1px 1px $text-shadow;
background-clip: padding-box;
&:hover:not(:disabled) {
$base-color-hover: adjust-color($base-color, $lightness: -4.5%);
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
$border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
$inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
$stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
$text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
$border-bottom: grayscale($border-bottom);
$border-sides: grayscale($border-sides);
$border-top: grayscale($border-top);
$inset-shadow-hover: grayscale($inset-shadow-hover);
$stop-gradient-hover: grayscale($stop-gradient-hover);
$text-shadow-hover: grayscale($text-shadow-hover);
}
border: 1px solid $border-top;
border-color: $border-top $border-sides $border-bottom;
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
cursor: pointer;
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
text-shadow: 0 -1px 1px $text-shadow-hover;
background-clip: padding-box;
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
$border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
$border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
$inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
$text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
@if $grayscale == true {
$active-color: grayscale($active-color);
$border-active: grayscale($border-active);
$border-bottom-active: grayscale($border-bottom-active);
$inset-shadow-active: grayscale($inset-shadow-active);
$text-shadow-active: grayscale($text-shadow-active);
}
background: $active-color;
border: 1px solid $border-active;
border-bottom: 1px solid $border-bottom-active;
box-shadow: inset 0 0 6px 3px $inset-shadow-active;
text-shadow: 0 -1px 1px $text-shadow-active;
}
}
// Flat Button
//************************************************************************//
@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
}
background-color: $base-color;
border-radius: 3px;
border: none;
color: $color;
display: inline-block;
font-size: inherit;
font-weight: bold;
padding: 7px 18px;
text-decoration: none;
background-clip: padding-box;
&:hover:not(:disabled){
$base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
}
background-color: $base-color-hover;
cursor: pointer;
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
@if $grayscale == true {
$base-color-active: grayscale($base-color-active);
}
background-color: $base-color-active;
cursor: pointer;
}
}

View File

@@ -0,0 +1,23 @@
// Modern micro clearfix provides an easy way to contain floats without adding additional markup.
//
// Example usage:
//
// // Contain all floats within .wrapper
// .wrapper {
// @include clearfix;
// .content,
// .sidebar {
// float : left;
// }
// }
@mixin clearfix {
&:after {
content:"";
display:table;
clear:both;
}
}
// Acknowledgements
// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)

View File

@@ -0,0 +1,111 @@
// directional-property mixins are shorthands
// for writing properties like the following
//
// @include margin(null 0 10px);
// ------
// margin-right: 0;
// margin-bottom: 10px;
// margin-left: 0;
//
// - or -
//
// @include border-style(dotted null);
// ------
// border-top-style: dotted;
// border-bottom-style: dotted;
//
// ------
//
// Note: You can also use false instead of null
@function collapse-directionals($vals) {
$output: null;
$A: nth( $vals, 1 );
$B: if( length($vals) < 2, $A, nth($vals, 2));
$C: if( length($vals) < 3, $A, nth($vals, 3));
$D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) ));
@if $A == 0 { $A: 0 }
@if $B == 0 { $B: 0 }
@if $C == 0 { $C: 0 }
@if $D == 0 { $D: 0 }
@if $A == $B and $A == $C and $A == $D { $output: $A }
@else if $A == $C and $B == $D { $output: $A $B }
@else if $B == $D { $output: $A $B $C }
@else { $output: $A $B $C $D }
@return $output;
}
@function contains-falsy($list) {
@each $item in $list {
@if not $item {
@return true;
}
}
@return false;
}
@mixin directional-property($pre, $suf, $vals) {
// Property Names
$top: $pre + "-top" + if($suf, "-#{$suf}", "");
$bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
$left: $pre + "-left" + if($suf, "-#{$suf}", "");
$right: $pre + "-right" + if($suf, "-#{$suf}", "");
$all: $pre + if($suf, "-#{$suf}", "");
$vals: collapse-directionals($vals);
@if contains-falsy($vals) {
@if nth($vals, 1) { #{$top}: nth($vals, 1); }
@if length($vals) == 1 {
@if nth($vals, 1) { #{$right}: nth($vals, 1); }
} @else {
@if nth($vals, 2) { #{$right}: nth($vals, 2); }
}
// prop: top/bottom right/left
@if length($vals) == 2 {
@if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
// prop: top right/left bottom
} @else if length($vals) == 3 {
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
// prop: top right bottom left
} @else if length($vals) == 4 {
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
@if nth($vals, 4) { #{$left}: nth($vals, 4); }
}
// prop: top/right/bottom/left
} @else {
#{$all}: $vals;
}
}
@mixin margin($vals...) {
@include directional-property(margin, false, $vals...);
}
@mixin padding($vals...) {
@include directional-property(padding, false, $vals...);
}
@mixin border-style($vals...) {
@include directional-property(border, style, $vals...);
}
@mixin border-color($vals...) {
@include directional-property(border, color, $vals...);
}
@mixin border-width($vals...) {
@include directional-property(border, width, $vals...);
}

View File

@@ -0,0 +1,7 @@
@mixin ellipsis($width: 100%) {
display: inline-block;
max-width: $width;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@@ -0,0 +1,5 @@
$georgia: Georgia, Cambria, "Times New Roman", Times, serif;
$helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
$monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
$verdana: Verdana, Geneva, sans-serif;

View File

@@ -0,0 +1,10 @@
@mixin hide-text {
overflow: hidden;
&:before {
content: "";
display: block;
width: 0;
height: 100%;
}
}

View File

@@ -0,0 +1,86 @@
//************************************************************************//
// Generate a variable ($all-text-inputs) with a list of all html5
// input types that have a text-based input, excluding textarea.
// http://diveintohtml5.org/forms.html
//************************************************************************//
$inputs-list: 'input[type="email"]',
'input[type="number"]',
'input[type="password"]',
'input[type="search"]',
'input[type="tel"]',
'input[type="text"]',
'input[type="url"]',
// Webkit & Gecko may change the display of these in the future
'input[type="color"]',
'input[type="date"]',
'input[type="datetime"]',
'input[type="datetime-local"]',
'input[type="month"]',
'input[type="time"]',
'input[type="week"]';
// Bare inputs
//************************************************************************//
$all-text-inputs: assign-inputs($inputs-list);
// Hover Pseudo-class
//************************************************************************//
$all-text-inputs-hover: assign-inputs($inputs-list, hover);
// Focus Pseudo-class
//************************************************************************//
$all-text-inputs-focus: assign-inputs($inputs-list, focus);
// You must use interpolation on the variable:
// #{$all-text-inputs}
// #{$all-text-inputs-hover}
// #{$all-text-inputs-focus}
// Example
//************************************************************************//
// #{$all-text-inputs}, textarea {
// border: 1px solid red;
// }
//************************************************************************//
// Generate a variable ($all-button-inputs) with a list of all html5
// input types that have a button-based input, excluding button.
//************************************************************************//
$inputs-button-list: 'input[type="button"]',
'input[type="reset"]',
'input[type="submit"]';
// Bare inputs
//************************************************************************//
$all-button-inputs: assign-inputs($inputs-button-list);
// Hover Pseudo-class
//************************************************************************//
$all-button-inputs-hover: assign-inputs($inputs-button-list, hover);
// Focus Pseudo-class
//************************************************************************//
$all-button-inputs-focus: assign-inputs($inputs-button-list, focus);
// Active Pseudo-class
//************************************************************************//
$all-button-inputs-active: assign-inputs($inputs-button-list, active);
// You must use interpolation on the variable:
// #{$all-button-inputs}
// #{$all-button-inputs-hover}
// #{$all-button-inputs-focus}
// #{$all-button-inputs-active}
// Example
//************************************************************************//
// #{$all-button-inputs}, button {
// border: 1px solid red;
// }

View File

@@ -0,0 +1,32 @@
@mixin position ($position: relative, $coordinates: null null null null) {
@if type-of($position) == list {
$coordinates: $position;
$position: relative;
}
$coordinates: unpack($coordinates);
$top: nth($coordinates, 1);
$right: nth($coordinates, 2);
$bottom: nth($coordinates, 3);
$left: nth($coordinates, 4);
position: $position;
@if ($top and $top == auto) or (type-of($top) == number) {
top: $top;
}
@if ($right and $right == auto) or (type-of($right) == number) {
right: $right;
}
@if ($bottom and $bottom == auto) or (type-of($bottom) == number) {
bottom: $bottom;
}
@if ($left and $left == auto) or (type-of($left) == number) {
left: $left;
}
}

View File

@@ -0,0 +1,45 @@
//************************************************************************//
// Example: @include prefixer(border-radius, $radii, webkit ms spec);
//************************************************************************//
// Variables located in /settings/_prefixer.scss
@mixin prefixer ($property, $value, $prefixes) {
@each $prefix in $prefixes {
@if $prefix == webkit {
@if $prefix-for-webkit {
-webkit-#{$property}: $value;
}
}
@else if $prefix == moz {
@if $prefix-for-mozilla {
-moz-#{$property}: $value;
}
}
@else if $prefix == ms {
@if $prefix-for-microsoft {
-ms-#{$property}: $value;
}
}
@else if $prefix == o {
@if $prefix-for-opera {
-o-#{$property}: $value;
}
}
@else if $prefix == spec {
@if $prefix-for-spec {
#{$property}: $value;
}
}
@else {
@warn "Unrecognized prefix: #{$prefix}";
}
}
}
@mixin disable-prefix-for-all() {
$prefix-for-webkit: false !global;
$prefix-for-mozilla: false !global;
$prefix-for-microsoft: false !global;
$prefix-for-opera: false !global;
$prefix-for-spec: false !global;
}

View File

@@ -0,0 +1,33 @@
@mixin rem($property, $size, $base: $em-base) {
@if not unitless($base) {
$base: strip-units($base);
}
$unitless_values: ();
@each $num in $size {
@if not unitless($num) {
@if unit($num) == "em" {
$num: $num * $base;
}
$num: strip-units($num);
}
$unitless_values: append($unitless_values, $num);
}
$size: $unitless_values;
$pixel_values: ();
$rem_values: ();
@each $value in $pxval {
$pixel_value: $value * 1px;
$pixel_values: append($pixel_values, $pixel_value);
$rem_value: ($value / $base) * 1rem;
$rem_values: append($rem_values, $rem_value);
}
#{$property}: $pixel_values;
#{$property}: $rem_values;
}

View File

@@ -0,0 +1,31 @@
@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: false) {
@if $asset-pipeline {
background-image: image-url("#{$filename}.#{$extension}");
}
@else {
background-image: url("#{$filename}.#{$extension}");
}
@include hidpi {
@if $asset-pipeline {
@if $retina-filename {
background-image: image-url("#{$retina-filename}.#{$extension}");
}
@else {
background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
}
}
@else {
@if $retina-filename {
background-image: url("#{$retina-filename}.#{$extension}");
}
@else {
background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
}
}
background-size: $background-size;
}
}

View File

@@ -0,0 +1,16 @@
@mixin size($size) {
$height: nth($size, 1);
$width: $height;
@if length($size) > 1 {
$height: nth($size, 2);
}
@if $height == auto or (type-of($height) == number and not unitless($height)) {
height: $height;
}
@if $width == auto or (type-of($height) == number and not unitless($width)) {
width: $width;
}
}

View File

@@ -0,0 +1,32 @@
// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
// Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html
// EASE IN
$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
// EASE OUT
$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
// EASE IN OUT
$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);

View File

@@ -0,0 +1,83 @@
@mixin triangle ($size, $color, $direction) {
height: 0;
width: 0;
$width: nth($size, 1);
$height: nth($size, length($size));
$foreground-color: nth($color, 1);
$background-color: if(length($color) == 2, nth($color, 2), transparent);
@if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
$width: $width / 2;
$height: if(length($size) > 1, $height, $height/2);
@if $direction == up {
border-left: $width solid $background-color;
border-right: $width solid $background-color;
border-bottom: $height solid $foreground-color;
} @else if $direction == right {
border-top: $width solid $background-color;
border-bottom: $width solid $background-color;
border-left: $height solid $foreground-color;
} @else if $direction == down {
border-left: $width solid $background-color;
border-right: $width solid $background-color;
border-top: $height solid $foreground-color;
} @else if $direction == left {
border-top: $width solid $background-color;
border-bottom: $width solid $background-color;
border-right: $height solid $foreground-color;
}
}
@else if ($direction == up-right) or ($direction == up-left) {
border-top: $height solid $foreground-color;
@if $direction == up-right {
border-left: $width solid $background-color;
} @else if $direction == up-left {
border-right: $width solid $background-color;
}
}
@else if ($direction == down-right) or ($direction == down-left) {
border-bottom: $height solid $foreground-color;
@if $direction == down-right {
border-left: $width solid $background-color;
} @else if $direction == down-left {
border-right: $width solid $background-color;
}
}
@else if ($direction == inset-up) {
border-width: $height $width;
border-style: solid;
border-color: $background-color $background-color $foreground-color;
}
@else if ($direction == inset-down) {
border-width: $height $width;
border-style: solid;
border-color: $foreground-color $background-color $background-color;
}
@else if ($direction == inset-right) {
border-width: $width $height;
border-style: solid;
border-color: $background-color $background-color $background-color $foreground-color;
}
@else if ($direction == inset-left) {
border-width: $width $height;
border-style: solid;
border-color: $background-color $foreground-color $background-color $background-color;
}
}

View File

@@ -0,0 +1,8 @@
@mixin word-wrap($wrap: break-word) {
word-wrap: $wrap;
@if $wrap == break-word {
overflow-wrap: break-word;
word-break: break-all;
}
}

View File

@@ -0,0 +1,52 @@
// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
// Official animation shorthand property.
@mixin animation ($animations...) {
@include prefixer(animation, $animations, webkit moz spec);
}
// Individual Animation Properties
@mixin animation-name ($names...) {
@include prefixer(animation-name, $names, webkit moz spec);
}
@mixin animation-duration ($times...) {
@include prefixer(animation-duration, $times, webkit moz spec);
}
@mixin animation-timing-function ($motions...) {
// ease | linear | ease-in | ease-out | ease-in-out
@include prefixer(animation-timing-function, $motions, webkit moz spec);
}
@mixin animation-iteration-count ($values...) {
// infinite | <number>
@include prefixer(animation-iteration-count, $values, webkit moz spec);
}
@mixin animation-direction ($directions...) {
// normal | alternate
@include prefixer(animation-direction, $directions, webkit moz spec);
}
@mixin animation-play-state ($states...) {
// running | paused
@include prefixer(animation-play-state, $states, webkit moz spec);
}
@mixin animation-delay ($times...) {
@include prefixer(animation-delay, $times, webkit moz spec);
}
@mixin animation-fill-mode ($modes...) {
// none | forwards | backwards | both
@include prefixer(animation-fill-mode, $modes, webkit moz spec);
}

View File

@@ -0,0 +1,3 @@
@mixin appearance ($value) {
@include prefixer(appearance, $value, webkit moz ms o spec);
}

View File

@@ -0,0 +1,6 @@
//************************************************************************//
// Backface-visibility mixin
//************************************************************************//
@mixin backface-visibility($visibility) {
@include prefixer(backface-visibility, $visibility, webkit spec);
}

View File

@@ -0,0 +1,42 @@
//************************************************************************//
// Background-image property for adding multiple background images with
// gradients, or for stringing multiple gradients together.
//************************************************************************//
@mixin background-image($images...) {
$webkit-images: ();
$spec-images: ();
@each $image in $images {
$webkit-image: ();
$spec-image: ();
@if (type-of($image) == string) {
$url-str: str-slice($image, 0, 3);
$gradient-type: str-slice($image, 0, 6);
@if $url-str == "url" {
$webkit-image: $image;
$spec-image: $image;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser($image);
$webkit-image: map-get($gradients, webkit-image);
$spec-image: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser($image);
$webkit-image: map-get($gradients, webkit-image);
$spec-image: map-get($gradients, spec-image);
}
}
$webkit-images: append($webkit-images, $webkit-image, comma);
$spec-images: append($spec-images, $spec-image, comma);
}
background-image: $webkit-images;
background-image: $spec-images;
}

View File

@@ -0,0 +1,55 @@
//************************************************************************//
// Background property for adding multiple backgrounds using shorthand
// notation.
//************************************************************************//
@mixin background($backgrounds...) {
$webkit-backgrounds: ();
$spec-backgrounds: ();
@each $background in $backgrounds {
$webkit-background: ();
$spec-background: ();
$background-type: type-of($background);
@if $background-type == string or list {
$background-str: if($background-type == list, nth($background, 1), $background);
$url-str: str-slice($background-str, 0, 3);
$gradient-type: str-slice($background-str, 0, 6);
@if $url-str == "url" {
$webkit-background: $background;
$spec-background: $background;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser("#{$background}");
$webkit-background: map-get($gradients, webkit-image);
$spec-background: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser("#{$background}");
$webkit-background: map-get($gradients, webkit-image);
$spec-background: map-get($gradients, spec-image);
}
@else {
$webkit-background: $background;
$spec-background: $background;
}
}
@else {
$webkit-background: $background;
$spec-background: $background;
}
$webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma);
$spec-backgrounds: append($spec-backgrounds, $spec-background, comma);
}
background: $webkit-backgrounds;
background: $spec-backgrounds;
}

View File

@@ -0,0 +1,59 @@
@mixin border-image($borders...) {
$webkit-borders: ();
$spec-borders: ();
@each $border in $borders {
$webkit-border: ();
$spec-border: ();
$border-type: type-of($border);
@if $border-type == string or list {
$border-str: if($border-type == list, nth($border, 1), $border);
$url-str: str-slice($border-str, 0, 3);
$gradient-type: str-slice($border-str, 0, 6);
@if $url-str == "url" {
$webkit-border: $border;
$spec-border: $border;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser("#{$border}");
$webkit-border: map-get($gradients, webkit-image);
$spec-border: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser("#{$border}");
$webkit-border: map-get($gradients, webkit-image);
$spec-border: map-get($gradients, spec-image);
}
@else {
$webkit-border: $border;
$spec-border: $border;
}
}
@else {
$webkit-border: $border;
$spec-border: $border;
}
$webkit-borders: append($webkit-borders, $webkit-border, comma);
$spec-borders: append($spec-borders, $spec-border, comma);
}
-webkit-border-image: $webkit-borders;
border-image: $spec-borders;
border-style: solid;
}
//Examples:
// @include border-image(url("image.png"));
// @include border-image(url("image.png") 20 stretch);
// @include border-image(linear-gradient(45deg, orange, yellow));
// @include border-image(linear-gradient(45deg, orange, yellow) stretch);
// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
// @include border-image(radial-gradient(top, cover, orange, yellow, orange));

View File

@@ -0,0 +1,22 @@
//************************************************************************//
// Shorthand Border-radius mixins
//************************************************************************//
@mixin border-top-radius($radii) {
@include prefixer(border-top-left-radius, $radii, spec);
@include prefixer(border-top-right-radius, $radii, spec);
}
@mixin border-bottom-radius($radii) {
@include prefixer(border-bottom-left-radius, $radii, spec);
@include prefixer(border-bottom-right-radius, $radii, spec);
}
@mixin border-left-radius($radii) {
@include prefixer(border-top-left-radius, $radii, spec);
@include prefixer(border-bottom-left-radius, $radii, spec);
}
@mixin border-right-radius($radii) {
@include prefixer(border-top-right-radius, $radii, spec);
@include prefixer(border-bottom-right-radius, $radii, spec);
}

View File

@@ -0,0 +1,4 @@
@mixin box-sizing ($box) {
// content-box | border-box | inherit
@include prefixer(box-sizing, $box, webkit moz spec);
}

View File

@@ -0,0 +1,4 @@
@mixin calc($property, $value) {
#{$property}: -webkit-calc(#{$value});
#{$property}: calc(#{$value});
}

View File

@@ -0,0 +1,47 @@
@mixin columns($arg: auto) {
// <column-count> || <column-width>
@include prefixer(columns, $arg, webkit moz spec);
}
@mixin column-count($int: auto) {
// auto || integer
@include prefixer(column-count, $int, webkit moz spec);
}
@mixin column-gap($length: normal) {
// normal || length
@include prefixer(column-gap, $length, webkit moz spec);
}
@mixin column-fill($arg: auto) {
// auto || length
@include prefixer(column-fill, $arg, webkit moz spec);
}
@mixin column-rule($arg) {
// <border-width> || <border-style> || <color>
@include prefixer(column-rule, $arg, webkit moz spec);
}
@mixin column-rule-color($color) {
@include prefixer(column-rule-color, $color, webkit moz spec);
}
@mixin column-rule-style($style: none) {
// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
@include prefixer(column-rule-style, $style, webkit moz spec);
}
@mixin column-rule-width ($width: none) {
@include prefixer(column-rule-width, $width, webkit moz spec);
}
@mixin column-span($arg: none) {
// none || all
@include prefixer(column-span, $arg, webkit moz spec);
}
@mixin column-width($length: auto) {
// auto || length
@include prefixer(column-width, $length, webkit moz spec);
}

View File

@@ -0,0 +1,5 @@
@mixin filter($function: none) {
// <filter-function> [<filter-function]* | none
@include prefixer(filter, $function, webkit spec);
}

View File

@@ -0,0 +1,321 @@
// CSS3 Flexible Box Model and property defaults
// Custom shorthand notation for flexbox
@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
@include display-box;
@include box-orient($orient);
@include box-pack($pack);
@include box-align($align);
}
@mixin display-box {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox; // IE 10
display: box;
}
@mixin box-orient($orient: inline-axis) {
// horizontal|vertical|inline-axis|block-axis|inherit
@include prefixer(box-orient, $orient, webkit moz spec);
}
@mixin box-pack($pack: start) {
// start|end|center|justify
@include prefixer(box-pack, $pack, webkit moz spec);
-ms-flex-pack: $pack; // IE 10
}
@mixin box-align($align: stretch) {
// start|end|center|baseline|stretch
@include prefixer(box-align, $align, webkit moz spec);
-ms-flex-align: $align; // IE 10
}
@mixin box-direction($direction: normal) {
// normal|reverse|inherit
@include prefixer(box-direction, $direction, webkit moz spec);
-ms-flex-direction: $direction; // IE 10
}
@mixin box-lines($lines: single) {
// single|multiple
@include prefixer(box-lines, $lines, webkit moz spec);
}
@mixin box-ordinal-group($int: 1) {
@include prefixer(box-ordinal-group, $int, webkit moz spec);
-ms-flex-order: $int; // IE 10
}
@mixin box-flex($value: 0.0) {
@include prefixer(box-flex, $value, webkit moz spec);
-ms-flex: $value; // IE 10
}
@mixin box-flex-group($int: 1) {
@include prefixer(box-flex-group, $int, webkit moz spec);
}
// CSS3 Flexible Box Model and property defaults
// Unified attributes for 2009, 2011, and 2012 flavours.
// 2009 - display (box | inline-box)
// 2011 - display (flexbox | inline-flexbox)
// 2012 - display (flex | inline-flex)
@mixin display($value) {
// flex | inline-flex
@if $value == "flex" {
// 2009
display: -webkit-box;
display: -moz-box;
display: box;
// 2012
display: -webkit-flex;
display: -moz-flex;
display: -ms-flexbox; // 2011 (IE 10)
display: flex;
}
@elseif $value == "inline-flex" {
display: -webkit-inline-box;
display: -moz-inline-box;
display: inline-box;
display: -webkit-inline-flex;
display: -moz-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
}
@else {
display: $value;
}
}
// 2009 - box-flex (integer)
// 2011 - flex (decimal | width decimal)
// 2012 - flex (integer integer width)
@mixin flex($value) {
// Grab flex-grow for older browsers.
$flex-grow: nth($value, 1);
// 2009
@include prefixer(box-flex, $flex-grow, webkit moz spec);
// 2011 (IE 10), 2012
@include prefixer(flex, $value, webkit moz ms spec);
}
// 2009 - box-orient ( horizontal | vertical | inline-axis | block-axis)
// - box-direction (normal | reverse)
// 2011 - flex-direction (row | row-reverse | column | column-reverse)
// 2012 - flex-direction (row | row-reverse | column | column-reverse)
@mixin flex-direction($value: row) {
// Alt values.
$value-2009: $value;
$value-2011: $value;
$direction: "normal";
@if $value == row {
$value-2009: horizontal;
}
@elseif $value == "row-reverse" {
$value-2009: horizontal;
$direction: reverse;
}
@elseif $value == column {
$value-2009: vertical;
}
@elseif $value == "column-reverse" {
$value-2009: vertical;
$direction: reverse;
}
// 2009
@include prefixer(box-orient, $value-2009, webkit moz spec);
@if $direction == "reverse" {
@include prefixer(box-direction, $direction, webkit moz spec);
}
// 2012
@include prefixer(flex-direction, $value, webkit moz spec);
// 2011 (IE 10)
-ms-flex-direction: $value;
}
// 2009 - box-lines (single | multiple)
// 2011 - flex-wrap (nowrap | wrap | wrap-reverse)
// 2012 - flex-wrap (nowrap | wrap | wrap-reverse)
@mixin flex-wrap($value: nowrap) {
// Alt values.
$alt-value: $value;
@if $value == nowrap {
$alt-value: single;
}
@elseif $value == wrap {
$alt-value: multiple;
}
@elseif $value == "wrap-reverse" {
$alt-value: multiple;
}
@include prefixer(box-lines, $alt-value, webkit moz spec);
@include prefixer(flex-wrap, $value, webkit moz ms spec);
}
// 2009 - TODO: parse values into flex-direction/flex-wrap
// 2011 - TODO: parse values into flex-direction/flex-wrap
// 2012 - flex-flow (flex-direction || flex-wrap)
@mixin flex-flow($value) {
@include prefixer(flex-flow, $value, webkit moz spec);
}
// 2009 - box-ordinal-group (integer)
// 2011 - flex-order (integer)
// 2012 - order (integer)
@mixin order($int: 0) {
// 2009
@include prefixer(box-ordinal-group, $int, webkit moz spec);
// 2012
@include prefixer(order, $int, webkit moz spec);
// 2011 (IE 10)
-ms-flex-order: $int;
}
// 2012 - flex-grow (number)
@mixin flex-grow($number: 0) {
@include prefixer(flex-grow, $number, webkit moz spec);
-ms-flex-positive: $number;
}
// 2012 - flex-shrink (number)
@mixin flex-shrink($number: 1) {
@include prefixer(flex-shrink, $number, webkit moz spec);
-ms-flex-negative: $number;
}
// 2012 - flex-basis (number)
@mixin flex-basis($width: auto) {
@include prefixer(flex-basis, $width, webkit moz spec);
-ms-flex-preferred-size: $width;
}
// 2009 - box-pack (start | end | center | justify)
// 2011 - flex-pack (start | end | center | justify)
// 2012 - justify-content (flex-start | flex-end | center | space-between | space-around)
@mixin justify-content ($value: flex-start) {
// Alt values.
$alt-value: $value;
@if $value == "flex-start" {
$alt-value: start;
}
@elseif $value == "flex-end" {
$alt-value: end;
}
@elseif $value == "space-between" {
$alt-value: justify;
}
@elseif $value == "space-around" {
$alt-value: center;
}
// 2009
@include prefixer(box-pack, $alt-value, webkit moz spec);
// 2012
@include prefixer(justify-content, $value, webkit moz ms o spec);
// 2011 (IE 10)
-ms-flex-pack: $alt-value;
}
// 2009 - box-align (start | end | center | baseline | stretch)
// 2011 - flex-align (start | end | center | baseline | stretch)
// 2012 - align-items (flex-start | flex-end | center | baseline | stretch)
@mixin align-items($value: stretch) {
$alt-value: $value;
@if $value == "flex-start" {
$alt-value: start;
}
@elseif $value == "flex-end" {
$alt-value: end;
}
// 2009
@include prefixer(box-align, $alt-value, webkit moz spec);
// 2012
@include prefixer(align-items, $value, webkit moz ms o spec);
// 2011 (IE 10)
-ms-flex-align: $alt-value;
}
// 2011 - flex-item-align (auto | start | end | center | baseline | stretch)
// 2012 - align-self (auto | flex-start | flex-end | center | baseline | stretch)
@mixin align-self($value: auto) {
$value-2011: $value;
@if $value == "flex-start" {
$value-2011: start;
}
@elseif $value == "flex-end" {
$value-2011: end;
}
// 2012
@include prefixer(align-self, $value, webkit moz spec);
// 2011 (IE 10)
-ms-flex-item-align: $value-2011;
}
// 2011 - flex-line-pack (start | end | center | justify | distribute | stretch)
// 2012 - align-content (flex-start | flex-end | center | space-between | space-around | stretch)
@mixin align-content($value: stretch) {
$value-2011: $value;
@if $value == "flex-start" {
$value-2011: start;
}
@elseif $value == "flex-end" {
$value-2011: end;
}
@elseif $value == "space-between" {
$value-2011: justify;
}
@elseif $value == "space-around" {
$value-2011: distribute;
}
// 2012
@include prefixer(align-content, $value, webkit moz spec);
// 2011 (IE 10)
-ms-flex-line-pack: $value-2011;
}

View File

@@ -0,0 +1,23 @@
// Order of the includes matters, and it is: normal, bold, italic, bold+italic.
@mixin font-face($font-family, $file-path, $weight: normal, $style: normal, $asset-pipeline: false ) {
@font-face {
font-family: $font-family;
font-weight: $weight;
font-style: $style;
@if $asset-pipeline == true {
src: font-url('#{$file-path}.eot');
src: font-url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
font-url('#{$file-path}.woff') format('woff'),
font-url('#{$file-path}.ttf') format('truetype'),
font-url('#{$file-path}.svg##{$font-family}') format('svg');
} @else {
src: url('#{$file-path}.eot');
src: url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
url('#{$file-path}.woff') format('woff'),
url('#{$file-path}.ttf') format('truetype'),
url('#{$file-path}.svg##{$font-family}') format('svg');
}
}
}

View File

@@ -0,0 +1,10 @@
// Font feature settings mixin and property default.
// Examples: @include font-feature-settings("liga");
// @include font-feature-settings("lnum" false);
// @include font-feature-settings("pnum" 1, "kern" 0);
// @include font-feature-settings("ss01", "ss02");
@mixin font-feature-settings($settings...) {
@if length($settings) == 0 { $settings: none; }
@include prefixer(font-feature-settings, $settings, webkit moz ms spec);
}

View File

@@ -0,0 +1,10 @@
// HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
@mixin hidpi($ratio: 1.3) {
@media only screen and (-webkit-min-device-pixel-ratio: $ratio),
only screen and (min--moz-device-pixel-ratio: $ratio),
only screen and (-o-min-device-pixel-ratio: #{$ratio}/1),
only screen and (min-resolution: #{round($ratio*96)}dpi),
only screen and (min-resolution: #{$ratio}dppx) {
@content;
}
}

View File

@@ -0,0 +1,4 @@
@mixin hyphens($hyphenation: none) {
// none | manual | auto
@include prefixer(hyphens, $hyphenation, webkit moz ms spec);
}

View File

@@ -0,0 +1,14 @@
@mixin image-rendering ($mode:auto) {
@if ($mode == crisp-edges) {
-ms-interpolation-mode: nearest-neighbor; // IE8+
image-rendering: -moz-crisp-edges;
image-rendering: -o-crisp-edges;
image-rendering: -webkit-optimize-contrast;
image-rendering: crisp-edges;
}
@else {
image-rendering: $mode;
}
}

View File

@@ -0,0 +1,35 @@
// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
@mixin keyframes($name) {
$original-prefix-for-webkit: $prefix-for-webkit;
$original-prefix-for-mozilla: $prefix-for-mozilla;
$original-prefix-for-microsoft: $prefix-for-microsoft;
$original-prefix-for-opera: $prefix-for-opera;
$original-prefix-for-spec: $prefix-for-spec;
@if $original-prefix-for-webkit {
@include disable-prefix-for-all();
$prefix-for-webkit: true !global;
@-webkit-keyframes #{$name} {
@content;
}
}
@if $original-prefix-for-mozilla {
@include disable-prefix-for-all();
$prefix-for-mozilla: true !global;
@-moz-keyframes #{$name} {
@content;
}
}
$prefix-for-webkit: $original-prefix-for-webkit !global;
$prefix-for-mozilla: $original-prefix-for-mozilla !global;
$prefix-for-microsoft: $original-prefix-for-microsoft !global;
$prefix-for-opera: $original-prefix-for-opera !global;
$prefix-for-spec: $original-prefix-for-spec !global;
@if $original-prefix-for-spec {
@keyframes #{$name} {
@content;
}
}
}

Some files were not shown because too many files have changed in this diff Show More