template
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
// Variables and mixins
|
||||
@import "spectre/variables";
|
||||
@import "spectre/mixins";
|
||||
|
||||
/*! Spectre.css Experimentals v#{$version} | MIT License | github.com/picturepan2/spectre */
|
||||
// Experimentals
|
||||
@import "spectre/autocomplete";
|
||||
@import "spectre/calendars";
|
||||
@import "spectre/carousels";
|
||||
@import "spectre/comparison-sliders";
|
||||
@import "spectre/filters";
|
||||
@import "spectre/meters";
|
||||
@import "spectre/off-canvas";
|
||||
@import "spectre/parallax";
|
||||
@import "spectre/progress";
|
||||
@import "spectre/sliders";
|
||||
@import "spectre/timelines";
|
||||
@@ -0,0 +1,10 @@
|
||||
// Variables and mixins
|
||||
@import "spectre/variables";
|
||||
@import "spectre/mixins";
|
||||
|
||||
/*! Spectre.css Icons v#{$version} | MIT License | github.com/picturepan2/spectre */
|
||||
// Icons
|
||||
@import "spectre/icons/icons-core";
|
||||
@import "spectre/icons/icons-navigation";
|
||||
@import "spectre/icons/icons-action";
|
||||
@import "spectre/icons/icons-object";
|
||||
@@ -0,0 +1,59 @@
|
||||
// Variables and mixins
|
||||
@import "spectre/variables";
|
||||
@import "spectre/mixins";
|
||||
|
||||
/*! Spectre.css v#{$version} | MIT License | github.com/picturepan2/spectre */
|
||||
// Reset and dependencies
|
||||
@import "spectre/normalize";
|
||||
@import "spectre/base";
|
||||
|
||||
// Elements
|
||||
@import "spectre/typography";
|
||||
@import "spectre/asian";
|
||||
@import "spectre/tables";
|
||||
@import "spectre/buttons";
|
||||
@import "spectre/forms";
|
||||
@import "spectre/labels";
|
||||
@import "spectre/codes";
|
||||
@import "spectre/media";
|
||||
|
||||
// Layout
|
||||
@import "spectre/layout";
|
||||
@import "spectre/navbar";
|
||||
|
||||
// Components
|
||||
@import "spectre/accordions";
|
||||
@import "spectre/autocomplete";
|
||||
@import "spectre/avatars";
|
||||
@import "spectre/badges";
|
||||
@import "spectre/breadcrumbs";
|
||||
@import "spectre/bars";
|
||||
@import "spectre/cards";
|
||||
@import "spectre/chips";
|
||||
@import "spectre/dropdowns";
|
||||
@import "spectre/empty";
|
||||
@import "spectre/menus";
|
||||
@import "spectre/modals";
|
||||
@import "spectre/navs";
|
||||
@import "spectre/pagination";
|
||||
@import "spectre/panels";
|
||||
@import "spectre/popovers";
|
||||
@import "spectre/steps";
|
||||
@import "spectre/tabs";
|
||||
@import "spectre/tiles";
|
||||
@import "spectre/toasts";
|
||||
@import "spectre/tooltips";
|
||||
|
||||
// Utility classes
|
||||
@import "spectre/animations";
|
||||
@import "spectre/utilities";
|
||||
|
||||
// Extras
|
||||
.search-input {
|
||||
@extend .form-input;
|
||||
}
|
||||
|
||||
.button {
|
||||
@extend .btn;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,316 @@
|
||||
|
||||
// Icon resize
|
||||
.icon-resize-horiz,
|
||||
.icon-resize-vert {
|
||||
&::before,
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-right: 0;
|
||||
content: "";
|
||||
height: .45em;
|
||||
width: .45em;
|
||||
}
|
||||
&::before {
|
||||
transform: translate(-50%, -90%) rotate(45deg);
|
||||
}
|
||||
&::after {
|
||||
transform: translate(-50%, -10%) rotate(225deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-resize-horiz {
|
||||
&::before {
|
||||
transform: translate(-90%, -50%) rotate(-45deg);
|
||||
}
|
||||
&::after {
|
||||
transform: translate(-10%, -50%) rotate(135deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Icon more
|
||||
.icon-more-horiz,
|
||||
.icon-more-vert {
|
||||
&::before {
|
||||
background: currentColor;
|
||||
box-shadow: -.4em 0, .4em 0;
|
||||
border-radius: 50%;
|
||||
content: "";
|
||||
height: 3px;
|
||||
width: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-more-vert {
|
||||
&::before {
|
||||
box-shadow: 0 -.4em, 0 .4em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon plus, minus, cross
|
||||
.icon-plus,
|
||||
.icon-minus,
|
||||
.icon-cross {
|
||||
&::before {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: $icon-border-width;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-plus,
|
||||
.icon-cross {
|
||||
&::after {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: 100%;
|
||||
width: $icon-border-width;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-cross {
|
||||
&::before {
|
||||
width: 100%;
|
||||
}
|
||||
&::after {
|
||||
height: 100%;
|
||||
}
|
||||
&::before,
|
||||
&::after {
|
||||
transform: translate(-50%, -50%) rotate(45deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Icon check
|
||||
.icon-check {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-right: 0;
|
||||
border-top: 0;
|
||||
content: "";
|
||||
height: .5em;
|
||||
width: .9em;
|
||||
transform: translate(-50%, -75%) rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Icon stop
|
||||
.icon-stop {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
&::before {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: $icon-border-width;
|
||||
transform: translate(-50%, -50%) rotate(45deg);
|
||||
width: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon shutdown
|
||||
.icon-shutdown {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
border-top-color: transparent;
|
||||
&::before {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: .5em;
|
||||
top: .1em;
|
||||
width: $icon-border-width;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon refresh
|
||||
.icon-refresh {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
border-right-color: transparent;
|
||||
content: "";
|
||||
height: 1em;
|
||||
width: 1em;
|
||||
}
|
||||
&::after {
|
||||
border: .2em solid currentColor;
|
||||
border-top-color: transparent;
|
||||
border-left-color: transparent;
|
||||
content: "";
|
||||
height: 0;
|
||||
left: 80%;
|
||||
top: 20%;
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon search
|
||||
.icon-search {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
content: "";
|
||||
height: .75em;
|
||||
left: 5%;
|
||||
top: 5%;
|
||||
transform: translate(0, 0) rotate(45deg);
|
||||
width: .75em;
|
||||
}
|
||||
&::after {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: $icon-border-width;
|
||||
left: 80%;
|
||||
top: 80%;
|
||||
transform: translate(-50%, -50%) rotate(45deg);
|
||||
width: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon edit
|
||||
.icon-edit {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
content: "";
|
||||
height: .4em;
|
||||
transform: translate(-40%, -60%) rotate(-45deg);
|
||||
width: .85em;
|
||||
}
|
||||
&::after {
|
||||
border: .15em solid currentColor;
|
||||
border-top-color: transparent;
|
||||
border-right-color: transparent;
|
||||
content: "";
|
||||
height: 0;
|
||||
left: 5%;
|
||||
top: 95%;
|
||||
transform: translate(0, -100%);
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon delete
|
||||
.icon-delete {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom-left-radius: $border-radius;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
border-top: 0;
|
||||
content: "";
|
||||
height: .75em;
|
||||
top: 60%;
|
||||
width: .75em;
|
||||
}
|
||||
&::after {
|
||||
background: currentColor;
|
||||
box-shadow: -.25em .2em, .25em .2em;
|
||||
content: "";
|
||||
height: $icon-border-width;
|
||||
top: $icon-border-width/2;
|
||||
width: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon share
|
||||
.icon-share {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: $border-radius;
|
||||
border-right: 0;
|
||||
border-top: 0;
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
content: "";
|
||||
height: .4em;
|
||||
left: 100%;
|
||||
top: .25em;
|
||||
transform: translate(-125%, -50%) rotate(-45deg);
|
||||
width: .4em;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-right: 0;
|
||||
border-radius: 75% 0;
|
||||
content: "";
|
||||
height: .5em;
|
||||
width: .6em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon flag
|
||||
.icon-flag {
|
||||
&::before {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: 1em;
|
||||
left: 15%;
|
||||
width: $icon-border-width;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
border-left: 0;
|
||||
border-top-right-radius: $border-radius;
|
||||
content: "";
|
||||
height: .65em;
|
||||
top: 35%;
|
||||
left: 60%;
|
||||
width: .8em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon bookmark
|
||||
.icon-bookmark {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-top-left-radius: $border-radius;
|
||||
border-top-right-radius: $border-radius;
|
||||
content: "";
|
||||
height: .9em;
|
||||
width: .8em;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-left: 0;
|
||||
border-radius: $border-radius;
|
||||
content: "";
|
||||
height: .5em;
|
||||
transform: translate(-50%, 35%) rotate(-45deg) skew(15deg, 15deg);
|
||||
width: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon download & upload
|
||||
.icon-download,
|
||||
.icon-upload {
|
||||
border-bottom: $icon-border-width solid currentColor;
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-right: 0;
|
||||
content: "";
|
||||
height: .5em;
|
||||
width: .5em;
|
||||
transform: translate(-50%, -60%) rotate(-135deg);
|
||||
}
|
||||
&::after {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: .6em;
|
||||
top: 40%;
|
||||
width: $icon-border-width;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-upload {
|
||||
&::before {
|
||||
transform: translate(-50%, -60%) rotate(45deg);
|
||||
}
|
||||
&::after {
|
||||
top: 50%;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
// Icon variables
|
||||
$icon-border-width: $border-width-lg;
|
||||
$icon-prefix: "icon";
|
||||
|
||||
// Icon base style
|
||||
.#{$icon-prefix} {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
font-size: inherit;
|
||||
font-style: normal;
|
||||
height: 1em;
|
||||
position: relative;
|
||||
text-indent: -9999px;
|
||||
vertical-align: middle;
|
||||
width: 1em;
|
||||
&::before,
|
||||
&::after {
|
||||
display: block;
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
// Icon sizes
|
||||
&.icon-2x {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
&.icon-3x {
|
||||
font-size: 2.4rem;
|
||||
}
|
||||
|
||||
&.icon-4x {
|
||||
font-size: 3.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
// Component icon support
|
||||
.accordion,
|
||||
.btn,
|
||||
.toast,
|
||||
.menu {
|
||||
.#{$icon-prefix} {
|
||||
vertical-align: -10%;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-lg {
|
||||
.#{$icon-prefix} {
|
||||
vertical-align: -15%;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
// Icon arrows
|
||||
.icon-arrow-down,
|
||||
.icon-arrow-left,
|
||||
.icon-arrow-right,
|
||||
.icon-arrow-up,
|
||||
.icon-downward,
|
||||
.icon-back,
|
||||
.icon-forward,
|
||||
.icon-upward {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-right: 0;
|
||||
content: "";
|
||||
height: .65em;
|
||||
width: .65em;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-arrow-down {
|
||||
&::before {
|
||||
transform: translate(-50%, -75%) rotate(225deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-arrow-left {
|
||||
&::before {
|
||||
transform: translate(-25%, -50%) rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-arrow-right {
|
||||
&::before {
|
||||
transform: translate(-75%, -50%) rotate(135deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-arrow-up {
|
||||
&::before {
|
||||
transform: translate(-50%, -25%) rotate(45deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-back,
|
||||
.icon-forward {
|
||||
&::after {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: $icon-border-width;
|
||||
width: .8em;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-downward,
|
||||
.icon-upward {
|
||||
&::after {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: .8em;
|
||||
width: $icon-border-width;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-back {
|
||||
&::after {
|
||||
left: 55%;
|
||||
}
|
||||
&::before {
|
||||
transform: translate(-50%, -50%) rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-downward {
|
||||
&::after {
|
||||
top: 45%;
|
||||
}
|
||||
&::before {
|
||||
transform: translate(-50%, -50%) rotate(-135deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-forward {
|
||||
&::after {
|
||||
left: 45%;
|
||||
}
|
||||
&::before {
|
||||
transform: translate(-50%, -50%) rotate(135deg);
|
||||
}
|
||||
}
|
||||
|
||||
.icon-upward {
|
||||
&::after {
|
||||
top: 55%;
|
||||
}
|
||||
&::before {
|
||||
transform: translate(-50%, -50%) rotate(45deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Icon caret
|
||||
.icon-caret {
|
||||
&::before {
|
||||
border-top: .3em solid currentColor;
|
||||
border-right: .3em solid transparent;
|
||||
border-left: .3em solid transparent;
|
||||
content: "";
|
||||
height: 0;
|
||||
transform: translate(-50%, -25%);
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon menu
|
||||
.icon-menu {
|
||||
&::before {
|
||||
background: currentColor;
|
||||
box-shadow: 0 -.35em, 0 .35em;
|
||||
content: "";
|
||||
height: $icon-border-width;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon apps
|
||||
.icon-apps {
|
||||
&::before {
|
||||
background: currentColor;
|
||||
box-shadow: -.35em -.35em, -.35em 0, -.35em .35em, 0 -.35em, 0 .35em, .35em -.35em, .35em 0, .35em .35em;
|
||||
content: "";
|
||||
height: 3px;
|
||||
width: 3px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
// Icon time
|
||||
.icon-time {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
&::before {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: .4em;
|
||||
transform: translate(-50%, -75%);
|
||||
width: $icon-border-width;
|
||||
}
|
||||
&::after {
|
||||
background: currentColor;
|
||||
content: "";
|
||||
height: .3em;
|
||||
transform: translate(-50%, -75%) rotate(90deg);
|
||||
transform-origin: 50% 90%;
|
||||
width: $icon-border-width;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon mail
|
||||
.icon-mail {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: $border-radius;
|
||||
content: "";
|
||||
height: .8em;
|
||||
width: 1em;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-right: 0;
|
||||
border-top: 0;
|
||||
content: "";
|
||||
height: .5em;
|
||||
transform: translate(-50%, -90%) rotate(-45deg) skew(10deg, 10deg);
|
||||
width: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon people
|
||||
.icon-people {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
content: "";
|
||||
height: .45em;
|
||||
top: 25%;
|
||||
width: .45em;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50% 50% 0 0;
|
||||
content: "";
|
||||
height: .4em;
|
||||
top: 75%;
|
||||
width: .9em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon message
|
||||
.icon-message {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-radius: $border-radius;
|
||||
border-right: 0;
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
content: "";
|
||||
height: .8em;
|
||||
left: 65%;
|
||||
top: 40%;
|
||||
width: .7em;
|
||||
}
|
||||
&::after {
|
||||
background: currentColor;
|
||||
border-radius: $border-radius;
|
||||
content: "";
|
||||
height: .3em;
|
||||
left: 10%;
|
||||
top: 100%;
|
||||
transform: translate(0, -90%) rotate(45deg);
|
||||
width: $icon-border-width;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon photo
|
||||
.icon-photo {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: $border-radius;
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
content: "";
|
||||
height: .25em;
|
||||
left: 35%;
|
||||
top: 35%;
|
||||
width: .25em;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom: 0;
|
||||
border-left: 0;
|
||||
content: "";
|
||||
height: .5em;
|
||||
left: 60%;
|
||||
transform: translate(-50%, 25%) rotate(-45deg);
|
||||
width: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon link
|
||||
.icon-link {
|
||||
&::before,
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 5em 0 0 5em;
|
||||
border-right: 0;
|
||||
content: "";
|
||||
height: .5em;
|
||||
width: .75em;
|
||||
}
|
||||
&::before {
|
||||
transform: translate(-70%, -45%) rotate(-45deg);
|
||||
}
|
||||
&::after {
|
||||
transform: translate(-30%, -55%) rotate(135deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Icon location
|
||||
.icon-location {
|
||||
&::before {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50% 50% 50% 0;
|
||||
content: "";
|
||||
height: .8em;
|
||||
transform: translate(-50%, -60%) rotate(-45deg);
|
||||
width: .8em;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
content: "";
|
||||
height: .2em;
|
||||
transform: translate(-50%, -80%);
|
||||
width: .2em;
|
||||
}
|
||||
}
|
||||
|
||||
// Icon emoji
|
||||
.icon-emoji {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-radius: 50%;
|
||||
&::before {
|
||||
border-radius: 50%;
|
||||
box-shadow: -.17em -.15em, .17em -.15em;
|
||||
content: "";
|
||||
height: .1em;
|
||||
width: .1em;
|
||||
}
|
||||
&::after {
|
||||
border: $icon-border-width solid currentColor;
|
||||
border-bottom-color: transparent;
|
||||
border-radius: 50%;
|
||||
border-right-color: transparent;
|
||||
content: "";
|
||||
height: .5em;
|
||||
transform: translate(-50%, -40%) rotate(-135deg);
|
||||
width: .5em;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// Avatar mixin
|
||||
@mixin avatar-base($size: $unit-8) {
|
||||
font-size: $size / 2;
|
||||
height: $size;
|
||||
width: $size;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
// Button variant mixin
|
||||
@mixin button-variant($color: $primary-color) {
|
||||
background: $color;
|
||||
border-color: darken($color, 3%);
|
||||
color: $light-color;
|
||||
&:focus {
|
||||
@include control-shadow($color);
|
||||
}
|
||||
&:focus,
|
||||
&:hover {
|
||||
background: darken($color, 2%);
|
||||
border-color: darken($color, 5%);
|
||||
color: $light-color;
|
||||
}
|
||||
&:active,
|
||||
&.active {
|
||||
background: darken($color, 7%);
|
||||
border-color: darken($color, 10%);
|
||||
color: $light-color;
|
||||
}
|
||||
&.loading {
|
||||
&::after {
|
||||
border-bottom-color: $light-color;
|
||||
border-left-color: $light-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin button-outline-variant($color: $primary-color) {
|
||||
background: $light-color;
|
||||
border-color: $color;
|
||||
color: $color;
|
||||
&:focus {
|
||||
@include control-shadow($color);
|
||||
}
|
||||
&:focus,
|
||||
&:hover {
|
||||
background: lighten($color, 50%);
|
||||
border-color: darken($color, 2%);
|
||||
color: $color;
|
||||
}
|
||||
&:active,
|
||||
&.active {
|
||||
background: $color;
|
||||
border-color: darken($color, 5%);
|
||||
color: $light-color;
|
||||
}
|
||||
&.loading {
|
||||
&::after {
|
||||
border-bottom-color: $color;
|
||||
border-left-color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// Clearfix mixin
|
||||
@mixin clearfix() {
|
||||
&::after {
|
||||
clear: both;
|
||||
content: "";
|
||||
display: table;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Background color utility mixin
|
||||
@mixin bg-color-variant($name: ".bg-primary", $color: $primary-color) {
|
||||
#{$name} {
|
||||
background: $color;
|
||||
|
||||
@if (lightness($color) < 60) {
|
||||
color: $light-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Text color utility mixin
|
||||
@mixin text-color-variant($name: ".text-primary", $color: $primary-color) {
|
||||
#{$name} {
|
||||
color: $color;
|
||||
}
|
||||
|
||||
a#{$name} {
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: darken($color, 5%);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// Label base style
|
||||
@mixin label-base() {
|
||||
border-radius: $border-radius;
|
||||
line-height: 1.2;
|
||||
padding: .1rem .15rem;
|
||||
}
|
||||
|
||||
@mixin label-variant($color: $light-color, $bg-color: $primary-color) {
|
||||
background: $bg-color;
|
||||
color: $color;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
// Margin utility mixin
|
||||
@mixin margin-variant($id: 1, $size: $unit-1) {
|
||||
.m-#{$id} {
|
||||
margin: $size;
|
||||
}
|
||||
|
||||
.mb-#{$id} {
|
||||
margin-bottom: $size;
|
||||
}
|
||||
|
||||
.ml-#{$id} {
|
||||
margin-left: $size;
|
||||
}
|
||||
|
||||
.mr-#{$id} {
|
||||
margin-right: $size;
|
||||
}
|
||||
|
||||
.mt-#{$id} {
|
||||
margin-top: $size;
|
||||
}
|
||||
|
||||
.mx-#{$id} {
|
||||
margin-left: $size;
|
||||
margin-right: $size;
|
||||
}
|
||||
|
||||
.my-#{$id} {
|
||||
margin-bottom: $size;
|
||||
margin-top: $size;
|
||||
}
|
||||
}
|
||||
|
||||
// Padding utility mixin
|
||||
@mixin padding-variant($id: 1, $size: $unit-1) {
|
||||
.p-#{$id} {
|
||||
padding: $size;
|
||||
}
|
||||
|
||||
.pb-#{$id} {
|
||||
padding-bottom: $size;
|
||||
}
|
||||
|
||||
.pl-#{$id} {
|
||||
padding-left: $size;
|
||||
}
|
||||
|
||||
.pr-#{$id} {
|
||||
padding-right: $size;
|
||||
}
|
||||
|
||||
.pt-#{$id} {
|
||||
padding-top: $size;
|
||||
}
|
||||
|
||||
.px-#{$id} {
|
||||
padding-left: $size;
|
||||
padding-right: $size;
|
||||
}
|
||||
|
||||
.py-#{$id} {
|
||||
padding-bottom: $size;
|
||||
padding-top: $size;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// Component focus shadow
|
||||
@mixin control-shadow($color: $primary-color) {
|
||||
box-shadow: 0 0 0 .1rem rgba($color, .2);
|
||||
}
|
||||
|
||||
// Shadow mixin
|
||||
@mixin shadow-variant($offset) {
|
||||
box-shadow: 0 $offset ($offset + .05rem) * 2 rgba($dark-color, .3);
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// Text Ellipsis
|
||||
@mixin text-ellipsis() {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// Toast variant mixin
|
||||
@mixin toast-variant($color: $dark-color) {
|
||||
background: rgba($color, .9);
|
||||
border-color: $color;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// Component transition
|
||||
@mixin control-transition() {
|
||||
transition: all .2s ease;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
// Text colors
|
||||
@include text-color-variant(".text-primary", $primary-color);
|
||||
|
||||
@include text-color-variant(".text-secondary", $secondary-color-dark);
|
||||
|
||||
@include text-color-variant(".text-gray", $gray-color);
|
||||
|
||||
@include text-color-variant(".text-light", $light-color);
|
||||
|
||||
@include text-color-variant(".text-success", $success-color);
|
||||
|
||||
@include text-color-variant(".text-warning", $warning-color);
|
||||
|
||||
@include text-color-variant(".text-error", $error-color);
|
||||
|
||||
// Background colors
|
||||
@include bg-color-variant(".bg-primary", $primary-color);
|
||||
|
||||
@include bg-color-variant(".bg-secondary", $secondary-color);
|
||||
|
||||
@include bg-color-variant(".bg-dark", $dark-color);
|
||||
|
||||
@include bg-color-variant(".bg-gray", $bg-color);
|
||||
|
||||
@include bg-color-variant(".bg-success", $success-color);
|
||||
|
||||
@include bg-color-variant(".bg-warning", $warning-color);
|
||||
|
||||
@include bg-color-variant(".bg-error", $error-color);
|
||||
@@ -0,0 +1,24 @@
|
||||
// Cursors
|
||||
.c-hand {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.c-move {
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.c-zoom-in {
|
||||
cursor: zoom-in;
|
||||
}
|
||||
|
||||
.c-zoom-out {
|
||||
cursor: zoom-out;
|
||||
}
|
||||
|
||||
.c-not-allowed {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.c-auto {
|
||||
cursor: auto;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
// Display
|
||||
.d-block {
|
||||
display: block;
|
||||
}
|
||||
.d-inline {
|
||||
display: inline;
|
||||
}
|
||||
.d-inline-block {
|
||||
display: inline-block;
|
||||
}
|
||||
.d-flex {
|
||||
display: flex;
|
||||
}
|
||||
.d-inline-flex {
|
||||
display: inline-flex;
|
||||
}
|
||||
.d-none,
|
||||
.d-hide {
|
||||
display: none !important;
|
||||
}
|
||||
.d-visible {
|
||||
visibility: visible;
|
||||
}
|
||||
.d-invisible {
|
||||
visibility: hidden;
|
||||
}
|
||||
.text-hide {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
color: transparent;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text-assistive {
|
||||
border: 0;
|
||||
clip: rect(0,0,0,0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
// Divider
|
||||
.divider,
|
||||
.divider-vert {
|
||||
display: block;
|
||||
position: relative;
|
||||
|
||||
&[data-content]::after {
|
||||
background: $bg-color-light;
|
||||
color: $gray-color;
|
||||
content: attr(data-content);
|
||||
display: inline-block;
|
||||
font-size: $font-size-sm;
|
||||
padding: 0 $unit-2;
|
||||
transform: translateY(-$font-size-sm + $border-width);
|
||||
}
|
||||
}
|
||||
|
||||
.divider {
|
||||
border-top: $border-width solid $border-color;
|
||||
height: $border-width;
|
||||
margin: $unit-2 0;
|
||||
|
||||
&[data-content] {
|
||||
margin: $unit-4 0;
|
||||
}
|
||||
}
|
||||
|
||||
.divider-vert {
|
||||
display: block;
|
||||
padding: $unit-4;
|
||||
|
||||
&::before {
|
||||
border-left: $border-width solid $border-color;
|
||||
bottom: $unit-2;
|
||||
content: "";
|
||||
display: block;
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
top: $unit-2;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
&[data-content]::after {
|
||||
left: 50%;
|
||||
padding: $unit-1 0;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// Loading
|
||||
.loading {
|
||||
color: transparent !important;
|
||||
min-height: $unit-4;
|
||||
pointer-events: none;
|
||||
position: relative;
|
||||
&::after {
|
||||
animation: loading 500ms infinite linear;
|
||||
border: $border-width-lg solid $primary-color;
|
||||
border-radius: 50%;
|
||||
border-right-color: transparent;
|
||||
border-top-color: transparent;
|
||||
content: "";
|
||||
display: block;
|
||||
height: $unit-4;
|
||||
left: 50%;
|
||||
margin-left: -$unit-2;
|
||||
margin-top: -$unit-2;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: $unit-4;
|
||||
z-index: $zindex-0;
|
||||
}
|
||||
|
||||
&.loading-lg {
|
||||
min-height: $unit-10;
|
||||
&::after {
|
||||
height: $unit-8;
|
||||
margin-left: -$unit-4;
|
||||
margin-top: -$unit-4;
|
||||
width: $unit-8;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
// Position
|
||||
.clearfix {
|
||||
@include clearfix();
|
||||
}
|
||||
|
||||
.float-left {
|
||||
float: left !important;
|
||||
}
|
||||
|
||||
.float-right {
|
||||
float: right !important;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.absolute {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.fixed {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
.centered {
|
||||
display: block;
|
||||
float: none;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.flex-centered {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
// Spacing
|
||||
@include margin-variant(0, 0);
|
||||
|
||||
@include margin-variant(1, $unit-1);
|
||||
|
||||
@include margin-variant(2, $unit-2);
|
||||
|
||||
@include padding-variant(0, 0);
|
||||
|
||||
@include padding-variant(1, $unit-1);
|
||||
|
||||
@include padding-variant(2, $unit-2);
|
||||
@@ -0,0 +1,8 @@
|
||||
// Shapes
|
||||
.rounded {
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
|
||||
.circle {
|
||||
border-radius: 50%;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// Text
|
||||
// Text alignment utilities
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.text-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
// Text transform utilities
|
||||
.text-lowercase {
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
.text-uppercase {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.text-capitalize {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
// Text style utilities
|
||||
.text-normal {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.text-bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.text-italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.text-large {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
// Text overflow utilities
|
||||
.text-ellipsis {
|
||||
@include text-ellipsis();
|
||||
}
|
||||
|
||||
.text-clip {
|
||||
overflow: hidden;
|
||||
text-overflow: clip;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.text-break {
|
||||
hyphens: auto;
|
||||
word-break: break-word;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// Core variables and mixins
|
||||
@import 'spectre/variables';
|
||||
@import 'spectre/mixins';
|
||||
|
||||
@import 'theme/variables';
|
||||
@import 'theme/mixins';
|
||||
@import 'theme/framework';
|
||||
@import 'theme/typography';
|
||||
@import 'theme/forms';
|
||||
@import 'theme/mobile';
|
||||
@import 'theme/animation';
|
||||
|
||||
@import 'theme/header';
|
||||
@import 'theme/footer';
|
||||
@import 'theme/menu';
|
||||
|
||||
// Extra Skeleton Styling
|
||||
@import 'theme/blog';
|
||||
@import 'theme/onepage';
|
||||
|
||||
Reference in New Issue
Block a user