summaryrefslogtreecommitdiffstats
path: root/afb-client/bower_components/foundation-apps/scss/components/_notification.scss
diff options
context:
space:
mode:
Diffstat (limited to 'afb-client/bower_components/foundation-apps/scss/components/_notification.scss')
-rw-r--r--afb-client/bower_components/foundation-apps/scss/components/_notification.scss207
1 files changed, 207 insertions, 0 deletions
diff --git a/afb-client/bower_components/foundation-apps/scss/components/_notification.scss b/afb-client/bower_components/foundation-apps/scss/components/_notification.scss
new file mode 100644
index 0000000..0386510
--- /dev/null
+++ b/afb-client/bower_components/foundation-apps/scss/components/_notification.scss
@@ -0,0 +1,207 @@
+/*
+ NOTIFICATION
+ ------------
+
+ An alert that pins to the corner of the screen when triggered by JavaScript. It can be set to disappear after a certain period of time, or to stay put until the user clicks on it. A custom action can be asigned to a notification as well.
+
+ Optionally, the notifications directive can also tap into the browser's native notification support, if it exists.
+*/
+
+/// @Foundation.settings
+// Notification
+$notification-default-position: right top !default;
+$notification-width: rem-calc(400) !default;
+$notification-offset: $global-padding !default;
+
+$notification-background: $primary-color !default;
+$notification-color: white !default;
+$notification-padding: $global-padding !default;
+$notification-radius: 4px !default;
+
+$notification-icon-size: 60px !default;
+$notification-icon-margin: $global-padding !default;
+$notification-icon-align: top !default;
+
+///
+
+%notification {
+ z-index: 1000;
+ display: flex;
+ position: relative;
+ margin-top: .5rem;
+ margin-bottom: .5rem;
+ display: none;
+
+ h1 {
+ font-size: 1.25em;
+ margin: 0;
+ }
+ p {
+ margin: 0;
+ }
+
+ // Placeholder animation
+ // transition: opacity 1s ease-out;
+
+ &.is-active {
+ display: flex;
+ }
+
+ .close-button {
+ color: white;
+ }
+}
+
+%notification-container {
+ z-index: 3000;
+ position: fixed;
+
+ display: flex;
+ flex-direction: column;
+}
+
+@mixin notification-layout(
+ $x: nth($notification-default-position, 1),
+ $y: nth($notification-default-position, 2),
+ $size: $notification-width,
+ $offset: $notification-offset
+) {
+ width: $size;
+
+ @if $x == right {
+ right: $offset;
+ }
+ @else if $x == left {
+ left: $offset;
+ }
+ @else if $x == middle {
+ left: 50%;
+ margin-left: -($size / 2);
+ }
+
+ @if $y == top {
+ top: $offset;
+ }
+ @else if $y == bottom {
+ top: auto;
+ bottom: $offset;
+ }
+
+ // On small screens, notifications are full width but maintain their vertical orientation
+ @include breakpoint(small only) {
+ width: auto;
+ left: $offset;
+ right: $offset;
+ margin-left: 0;
+ }
+}
+@mixin notification-style(
+ $background: $notification-background,
+ $color: $notification-color,
+ $padding: $notification-padding,
+ $radius: $notification-radius
+) {
+ background: $background;
+ padding: $padding;
+ border-radius: $radius;
+
+ &, h1, h2, h3, h4, h5, h6 {
+ color: $color;
+ }
+}
+
+@mixin notification(
+ $background: $notification-background,
+ $color: $notification-color,
+ $padding: $notification-padding,
+ $radius: $notification-radius
+) {
+ @extend %notification;
+ @include notification-style($background, $color, $padding, $radius);
+}
+
+@mixin notification-container(
+ $x: nth($notification-default-position, 1),
+ $y: nth($notification-default-position, 2),
+ $size: $notification-width,
+ $offset: $notification-offset
+) {
+ @extend %notification-container;
+ @include notification-layout($x, $y, $size, $offset);
+}
+
+@mixin notification-icon(
+ $size: $notification-icon-size,
+ $margin: $notification-icon-margin,
+ $align: $notification-icon-align
+) {
+ $alignments: (
+ top: flex-start,
+ middle: middle,
+ bottom: flex-end,
+ );
+ flex: 0 0 $size;
+ margin-right: $global-padding;
+ align-self: map-get($alignments, $align);
+
+ img {
+ width: 100%;
+ height: auto;
+ }
+}
+
+/*
+ CSS Output
+*/
+
+@include exports(notification) {
+ .notification {
+ @include notification;
+
+ &.success { @include notification-style($success-color) }
+ &.warning { @include notification-style($warning-color) }
+ &.alert { @include notification-style($alert-color) }
+ &.dark { @include notification-style($dark-color, #fff) }
+
+
+ }
+
+ .static-notification {
+ @include notification;
+
+ position: fixed !important;
+
+ &.top-right { @include notification-layout(right, top); }
+ &.top-left { @include notification-layout(left, top); }
+ &.top-middle { @include notification-layout(middle, top); }
+
+ &.bottom-right { @include notification-layout(right, bottom); }
+ &.bottom-left { @include notification-layout(left, bottom); }
+ &.bottom-middle { @include notification-layout(middle, bottom); }
+
+ &.success { @include notification-style($success-color) }
+ &.warning { @include notification-style($warning-color) }
+ &.alert { @include notification-style($alert-color) }
+ &.dark { @include notification-style($dark-color, #fff) }
+ }
+
+ .notification-container {
+ @include notification-container;
+
+ &.top-right { @include notification-layout(right, top); }
+ &.top-left { @include notification-layout(left, top); }
+ &.top-middle { @include notification-layout(middle, top); }
+
+ &.bottom-right { @include notification-layout(right, bottom); }
+ &.bottom-left { @include notification-layout(left, bottom); }
+ &.bottom-middle { @include notification-layout(middle, bottom); }
+ }
+
+ .notification-icon {
+ @include notification-icon;
+ }
+ .notification-content {
+ flex: 1;
+ }
+
+}