diff --git a/src/assets/scss/abstracts/_mixins.scss b/src/assets/scss/abstracts/_mixins.scss
index 23e9598..1e5bfb3 100644
--- a/src/assets/scss/abstracts/_mixins.scss
+++ b/src/assets/scss/abstracts/_mixins.scss
@@ -48,3 +48,54 @@
}
}
+@mixin dot-button-variant(
+ $background,
+ $border,
+ $hover-background: darken($background, 7.5%),
+ $hover-border: lighten($border, 5%),
+ $active-background: $background,
+ $active-border: $border
+) {
+ color: color-yiq($background);
+ background-color: lighten($background, 15%);
+ @if $background == $white {
+ border-color: $black;
+ border-width: 3px;
+ } @else {
+ border-color: lighten($border, 15%);
+ }
+
+ &:focus,
+ &.focus {
+ color: color-yiq($hover-background);
+ @if $background == $white {
+ border-color: $black;
+ } @else {
+ border-color: $hover-border;
+ }
+ }
+
+ // Disabled comes first so active can properly restyle
+ // &.disabled,
+ // &:disabled {
+ // color: color-yiq($background);
+ // background-color: $background;
+ // border-color: $border;
+ // }
+
+ &:not(:disabled):not(.disabled):active,
+ &:not(:disabled):not(.disabled).active,
+ .show > &.dropdown-toggle {
+ color: color-yiq($active-background);
+ background-color: $active-background;
+ @if $background == $white {
+ border-color: $black;
+ } @else {
+ border-color: $active-border;
+
+ &:focus {
+ border-color: $hover-border;
+ }
+ }
+ }
+}
diff --git a/src/components/globals/DotButton.vue b/src/components/globals/DotButton.vue
new file mode 100644
index 0000000..ede237c
--- /dev/null
+++ b/src/components/globals/DotButton.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+