aboutsummaryrefslogtreecommitdiffstats
path: root/scss/uikit/components/button.scss
diff options
context:
space:
mode:
Diffstat (limited to 'scss/uikit/components/button.scss')
-rw-r--r--scss/uikit/components/button.scss451
1 files changed, 451 insertions, 0 deletions
diff --git a/scss/uikit/components/button.scss b/scss/uikit/components/button.scss
new file mode 100644
index 00000000..f65e1c22
--- /dev/null
+++ b/scss/uikit/components/button.scss
@@ -0,0 +1,451 @@
+// Name: Button
+// Description: Styles for buttons
+//
+// Component: `uk-button`
+//
+// Sub-objects: `uk-button-group`
+//
+// Modifiers: `uk-button-default`
+// `uk-button-primary`
+// `uk-button-secondary`
+// `uk-button-danger`
+// `uk-button-text`
+// `uk-button-link`
+// `uk-button-small`
+// `uk-button-large`
+//
+// States: `uk-active`
+//
+// ========================================================================
+
+
+// Variables
+// ========================================================================
+
+$button-line-height: $global-control-height !default;
+$button-small-line-height: $global-control-small-height !default;
+$button-large-line-height: $global-control-large-height !default;
+
+$button-font-size: $global-font-size !default;
+$button-small-font-size: $global-small-font-size !default;
+$button-large-font-size: $global-medium-font-size !default;
+
+$button-padding-horizontal: $global-gutter !default;
+$button-small-padding-horizontal: $global-small-gutter !default;
+$button-large-padding-horizontal: $global-medium-gutter !default;
+
+$button-default-background: $global-muted-background !default;
+$button-default-color: $global-emphasis-color !default;
+$button-default-hover-background: darken($button-default-background, 5%) !default;
+$button-default-hover-color: $global-emphasis-color !default;
+$button-default-active-background: darken($button-default-background, 10%) !default;
+$button-default-active-color: $global-emphasis-color !default;
+
+$button-primary-background: $global-primary-background !default;
+$button-primary-color: $global-inverse-color !default;
+$button-primary-hover-background: darken($button-primary-background, 5%) !default;
+$button-primary-hover-color: $global-inverse-color !default;
+$button-primary-active-background: darken($button-primary-background, 10%) !default;
+$button-primary-active-color: $global-inverse-color !default;
+
+$button-secondary-background: $global-secondary-background !default;
+$button-secondary-color: $global-inverse-color !default;
+$button-secondary-hover-background: darken($button-secondary-background, 5%) !default;
+$button-secondary-hover-color: $global-inverse-color !default;
+$button-secondary-active-background: darken($button-secondary-background, 10%) !default;
+$button-secondary-active-color: $global-inverse-color !default;
+
+$button-danger-background: $global-danger-background !default;
+$button-danger-color: $global-inverse-color !default;
+$button-danger-hover-background: darken($button-danger-background, 5%) !default;
+$button-danger-hover-color: $global-inverse-color !default;
+$button-danger-active-background: darken($button-danger-background, 10%) !default;
+$button-danger-active-color: $global-inverse-color !default;
+
+$button-disabled-background: $global-muted-background !default;
+$button-disabled-color: $global-muted-color !default;
+
+$button-text-line-height: $global-line-height !default;
+$button-text-color: $global-muted-color !default;
+$button-text-hover-color: $global-color !default;
+$button-text-disabled-color: $global-muted-color !default;
+
+$button-link-line-height: $global-line-height !default;
+$button-link-color: $global-link-color !default;
+$button-link-hover-color: $global-link-hover-color !default;
+$button-link-hover-text-decoration: underline !default;
+$button-link-disabled-color: $global-muted-color !default;
+
+
+/* ========================================================================
+ Component: Button
+ ========================================================================== */
+
+/*
+ * 1. Remove margins in Chrome, Safari and Opera.
+ * 2. Remove borders for `button`.
+ * 3. Remove border-radius in Chrome.
+ * 4. Address `overflow` set to `hidden` in IE.
+ * 5. Correct `font` properties and `color` not being inherited for `button`.
+ * 6. Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 7. Style
+ * 8. `line-height` is used to create a height because it also centers the text vertically for `a` elements.
+ * Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements.
+ * 9. Align text if button has a width
+ * 10. Required for `a`.
+ */
+
+.uk-button {
+ /* 1 */
+ margin: 0;
+ /* 2 */
+ border: none;
+ /* 3 */
+ border-radius: 0;
+ /* 4 */
+ overflow: visible;
+ /* 5 */
+ font: inherit;
+ color: inherit;
+ /* 6 */
+ text-transform: none;
+ /* 7 */
+ display: inline-block;
+ box-sizing: border-box;
+ padding: 0 $button-padding-horizontal;
+ vertical-align: middle;
+ font-size: $button-font-size;
+ /* 8 */
+ line-height: $button-line-height;
+ /* 9 */
+ text-align: center;
+ /* 10 */
+ text-decoration: none;
+ @if(mixin-exists(hook-button)) {@include hook-button();}
+}
+
+.uk-button:not(:disabled) { cursor: pointer; }
+
+/*
+ * Remove the inner border and padding in Firefox.
+ */
+
+.uk-button::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/* Hover */
+.uk-button:hover {
+ /* 8 */
+ text-decoration: none;
+ @if(mixin-exists(hook-button-hover)) {@include hook-button-hover();}
+}
+
+/* Focus */
+.uk-button:focus {
+ outline: none;
+ @if(mixin-exists(hook-button-focus)) {@include hook-button-focus();}
+}
+
+/* OnClick + Active */
+.uk-button:active,
+.uk-button.uk-active {
+ @if(mixin-exists(hook-button-active)) {@include hook-button-active();}
+}
+
+
+/* Style modifiers
+ ========================================================================== */
+
+/*
+ * Default
+ */
+
+.uk-button-default {
+ background-color: $button-default-background;
+ color: $button-default-color;
+ @if(mixin-exists(hook-button-default)) {@include hook-button-default();}
+}
+
+/* Hover + Focus */
+.uk-button-default:hover,
+.uk-button-default:focus {
+ background-color: $button-default-hover-background;
+ color: $button-default-hover-color;
+ @if(mixin-exists(hook-button-default-hover)) {@include hook-button-default-hover();}
+}
+
+/* OnClick + Active */
+.uk-button-default:active,
+.uk-button-default.uk-active {
+ background-color: $button-default-active-background;
+ color: $button-default-active-color;
+ @if(mixin-exists(hook-button-default-active)) {@include hook-button-default-active();}
+}
+
+/*
+ * Primary
+ */
+
+.uk-button-primary {
+ background-color: $button-primary-background;
+ color: $button-primary-color;
+ @if(mixin-exists(hook-button-primary)) {@include hook-button-primary();}
+}
+
+/* Hover + Focus */
+.uk-button-primary:hover,
+.uk-button-primary:focus {
+ background-color: $button-primary-hover-background;
+ color: $button-primary-hover-color;
+ @if(mixin-exists(hook-button-primary-hover)) {@include hook-button-primary-hover();}
+}
+
+/* OnClick + Active */
+.uk-button-primary:active,
+.uk-button-primary.uk-active {
+ background-color: $button-primary-active-background;
+ color: $button-primary-active-color;
+ @if(mixin-exists(hook-button-primary-active)) {@include hook-button-primary-active();}
+}
+
+/*
+ * Secondary
+ */
+
+.uk-button-secondary {
+ background-color: $button-secondary-background;
+ color: $button-secondary-color;
+ @if(mixin-exists(hook-button-secondary)) {@include hook-button-secondary();}
+}
+
+/* Hover + Focus */
+.uk-button-secondary:hover,
+.uk-button-secondary:focus {
+ background-color: $button-secondary-hover-background;
+ color: $button-secondary-hover-color;
+ @if(mixin-exists(hook-button-secondary-hover)) {@include hook-button-secondary-hover();}
+}
+
+/* OnClick + Active */
+.uk-button-secondary:active,
+.uk-button-secondary.uk-active {
+ background-color: $button-secondary-active-background;
+ color: $button-secondary-active-color;
+ @if(mixin-exists(hook-button-secondary-active)) {@include hook-button-secondary-active();}
+}
+
+/*
+ * Danger
+ */
+
+.uk-button-danger {
+ background-color: $button-danger-background;
+ color: $button-danger-color;
+ @if(mixin-exists(hook-button-danger)) {@include hook-button-danger();}
+}
+
+/* Hover + Focus */
+.uk-button-danger:hover,
+.uk-button-danger:focus {
+ background-color: $button-danger-hover-background;
+ color: $button-danger-hover-color;
+ @if(mixin-exists(hook-button-danger-hover)) {@include hook-button-danger-hover();}
+}
+
+/* OnClick + Active */
+.uk-button-danger:active,
+.uk-button-danger.uk-active {
+ background-color: $button-danger-active-background;
+ color: $button-danger-active-color;
+ @if(mixin-exists(hook-button-danger-active)) {@include hook-button-danger-active();}
+}
+
+/*
+ * Disabled
+ * The same for all style modifiers
+ */
+
+.uk-button-default:disabled,
+.uk-button-primary:disabled,
+.uk-button-secondary:disabled,
+.uk-button-danger:disabled {
+ background-color: $button-disabled-background;
+ color: $button-disabled-color;
+ @if(mixin-exists(hook-button-disabled)) {@include hook-button-disabled();}
+}
+
+
+/* Size modifiers
+ ========================================================================== */
+
+.uk-button-small {
+ padding: 0 $button-small-padding-horizontal;
+ line-height: $button-small-line-height;
+ font-size: $button-small-font-size;
+ @if(mixin-exists(hook-button-small)) {@include hook-button-small();}
+}
+
+.uk-button-large {
+ padding: 0 $button-large-padding-horizontal;
+ line-height: $button-large-line-height;
+ font-size: $button-large-font-size;
+ @if(mixin-exists(hook-button-large)) {@include hook-button-large();}
+}
+
+
+/* Text modifiers
+ ========================================================================== */
+
+/*
+ * Text
+ * 1. Reset
+ * 2. Style
+ */
+
+.uk-button-text {
+ /* 1 */
+ padding: 0;
+ line-height: $button-text-line-height;
+ background: none;
+ /* 2 */
+ color: $button-text-color;
+ @if(mixin-exists(hook-button-text)) {@include hook-button-text();}
+}
+
+/* Hover + Focus */
+.uk-button-text:hover,
+.uk-button-text:focus {
+ color: $button-text-hover-color;
+ @if(mixin-exists(hook-button-text-hover)) {@include hook-button-text-hover();}
+}
+
+/* Disabled */
+.uk-button-text:disabled {
+ color: $button-text-disabled-color;
+ @if(mixin-exists(hook-button-text-disabled)) {@include hook-button-text-disabled();}
+}
+
+/*
+ * Link
+ * 1. Reset
+ * 2. Style
+ */
+
+.uk-button-link {
+ /* 1 */
+ padding: 0;
+ line-height: $button-link-line-height;
+ background: none;
+ /* 2 */
+ color: $button-link-color;
+ @if(mixin-exists(hook-button-link)) {@include hook-button-link();}
+}
+
+/* Hover + Focus */
+.uk-button-link:hover,
+.uk-button-link:focus {
+ color: $button-link-hover-color;
+ text-decoration: $button-link-hover-text-decoration;
+}
+
+/* Disabled */
+.uk-button-link:disabled {
+ color: $button-link-disabled-color;
+ text-decoration: none;
+}
+
+
+/* Group
+ ========================================================================== */
+
+/*
+ * 1. Using `flex` instead of `inline-block` to prevent whitespace betweent child elements
+ * 2. Behave like button
+ * 3. Create position context
+ */
+
+.uk-button-group {
+ /* 1 */
+ display: inline-flex;
+ /* 2 */
+ vertical-align: middle;
+ /* 3 */
+ position: relative;
+}
+
+
+// Hooks
+// ========================================================================
+
+@if(mixin-exists(hook-button-misc)) {@include hook-button-misc();}
+
+// @mixin hook-button(){}
+// @mixin hook-button-hover(){}
+// @mixin hook-button-focus(){}
+// @mixin hook-button-active(){}
+// @mixin hook-button-default(){}
+// @mixin hook-button-default-hover(){}
+// @mixin hook-button-default-active(){}
+// @mixin hook-button-primary(){}
+// @mixin hook-button-primary-hover(){}
+// @mixin hook-button-primary-active(){}
+// @mixin hook-button-secondary(){}
+// @mixin hook-button-secondary-hover(){}
+// @mixin hook-button-secondary-active(){}
+// @mixin hook-button-danger(){}
+// @mixin hook-button-danger-hover(){}
+// @mixin hook-button-danger-active(){}
+// @mixin hook-button-disabled(){}
+// @mixin hook-button-small(){}
+// @mixin hook-button-large(){}
+// @mixin hook-button-text(){}
+// @mixin hook-button-text-hover(){}
+// @mixin hook-button-text-disabled(){}
+// @mixin hook-button-link(){}
+// @mixin hook-button-misc(){}
+
+
+// Inverse
+// ========================================================================
+
+$inverse-button-default-background: $inverse-global-primary-background !default;
+$inverse-button-default-color: $inverse-global-inverse-color !default;
+$inverse-button-default-hover-background: darken($inverse-button-default-background, 5%) !default;
+$inverse-button-default-hover-color: $inverse-global-inverse-color !default;
+$inverse-button-default-active-background: darken($inverse-button-default-background, 10%) !default;
+$inverse-button-default-active-color: $inverse-global-inverse-color !default;
+$inverse-button-primary-background: $inverse-global-primary-background !default;
+$inverse-button-primary-color: $inverse-global-inverse-color !default;
+$inverse-button-primary-hover-background: darken($inverse-button-primary-background, 5%) !default;
+$inverse-button-primary-hover-color: $inverse-global-inverse-color !default;
+$inverse-button-primary-active-background: darken($inverse-button-primary-background, 10%) !default;
+$inverse-button-primary-active-color: $inverse-global-inverse-color !default;
+$inverse-button-secondary-background: $inverse-global-primary-background !default;
+$inverse-button-secondary-color: $inverse-global-inverse-color !default;
+$inverse-button-secondary-hover-background: darken($inverse-button-secondary-background, 5%) !default;
+$inverse-button-secondary-hover-color: $inverse-global-inverse-color !default;
+$inverse-button-secondary-active-background: darken($inverse-button-secondary-background, 10%) !default;
+$inverse-button-secondary-active-color: $inverse-global-inverse-color !default;
+$inverse-button-text-color: $inverse-global-muted-color !default;
+$inverse-button-text-hover-color: $inverse-global-color !default;
+$inverse-button-text-disabled-color: $inverse-global-muted-color !default;
+$inverse-button-link-color: $inverse-global-muted-color !default;
+$inverse-button-link-hover-color: $inverse-global-color !default;
+
+
+
+// @mixin hook-inverse-button-default(){}
+// @mixin hook-inverse-button-default-hover(){}
+// @mixin hook-inverse-button-default-active(){}
+// @mixin hook-inverse-button-primary(){}
+// @mixin hook-inverse-button-primary-hover(){}
+// @mixin hook-inverse-button-primary-active(){}
+// @mixin hook-inverse-button-secondary(){}
+// @mixin hook-inverse-button-secondary-hover(){}
+// @mixin hook-inverse-button-secondary-active(){}
+// @mixin hook-inverse-button-text(){}
+// @mixin hook-inverse-button-text-hover(){}
+// @mixin hook-inverse-button-text-disabled(){}
+// @mixin hook-inverse-button-link(){}