diff --git a/.csslintrc b/.csslintrc index 4273f5c..aa4fe55 100644 --- a/.csslintrc +++ b/.csslintrc @@ -4,6 +4,7 @@ "box-sizing": false, "compatible-vendor-prefixes": false, "duplicate-background-images": false, + "font-sizes": false, "import": false, "important": false, "outline-none": false, diff --git a/demos/buttons.html b/demos/buttons.html new file mode 100644 index 0000000..05fc11e --- /dev/null +++ b/demos/buttons.html @@ -0,0 +1,279 @@ + + + + + + CSS Chassis - Buttons + + + + + + + + +

CSS Chassis

+ +

Button Classes

+ +

Use the button classes on an <a>, <button>, or <input> element. + + +

+ Link + + + + + +
+ +

Options

+ +
+ + + + + + + + +
+ +

Sizes

+ +
+

+ + + + + + +

+

+ + + + + + +

+

+ + + + + + +

+

+ + + + + + +

+
+ + +

Disabled State

+ +

Button Element

+ +

Add the disabled attribute to <button> buttons.

+ +
+

+ + + + + + +

+

+ + + + + + +

+

+ + + + + + +

+

+ + + + + + +

+
+ + +

Setting Button Appearance Via Classes

+ +

Sometimes you might need to set the class of a ui-button to display a state. This code works with <a>, <button>, or <input> elements.

+ +

Disabled Class

+

Add --disabled to the end of the button class.

+
+

+ Disabled + Disabled + Disabled + Disabled + Disabled + Disabled +

+

+ Disabled + Disabled + Disabled + Disabled + Disabled + Disabled +

+

+ Disabled + Disabled + Disabled + Disabled + Disabled + Disabled +

+

+ Disabled + Disabled + Disabled + Disabled + Disabled + Disabled +

+
+ +

Active Class

+

Add --active to the end of the button class.

+
+

+ Active + Active + Active + Active + Active + Active +

+

+ Active + Active + Active + Active + Active + Active +

+

+ Active + Active + Active + Active + Active + Active +

+

+ Active + Active + Active + Active + Active + Active +

+
+ +

Focus Class

+

Add --focus to the end of the button class.

+
+

+ Focus + Focus + Focus + Focus + Focus + Focus +

+

+ Focus + Focus + Focus + Focus + Focus + Focus +

+

+ Focus + Focus + Focus + Focus + Focus + Focus +

+

+ Focus + Focus + Focus + Focus + Focus + Focus +

+
+ +

Hover Class

+

Add --hover to the end of the button class.

+
+

+ Hover + Hover + Hover + Hover + Hover + Hover +

+

+ Hover + Hover + Hover + Hover + Hover + Hover +

+

+ Hover + Hover + Hover + Hover + Hover + Hover +

+

+ Hover + Hover + Hover + Hover + Hover + Hover +

+
+ + + + + diff --git a/package.json b/package.json index 1a089eb..79bc361 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,8 @@ "maintainers": [ { "name": "Sarah Frisk", - "email": "sarah@sarahfrisk.net", - "url": "http://sarahfrisk.net" + "email": "sarah@sarahfrisk.com", + "url": "http://sarahfrisk.com" }, { "name": "Alexander Schmitz", diff --git a/scss/atoms/buttons/_buttons.scss b/scss/atoms/buttons/_buttons.scss new file mode 100644 index 0000000..90f5e35 --- /dev/null +++ b/scss/atoms/buttons/_buttons.scss @@ -0,0 +1,730 @@ +/* +* ========================================================================== +* Buttons +* ========================================================================== +*/ +@import + "dist/chassis", + "mixins"; + +.ui-button { + &--default { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-states($ui-button-default-color, $ui-button-default-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-disabled($ui-button-default-color, $ui-button-default-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-focus($ui-button-default-color, $ui-button-default-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-active($ui-button-default-color, $ui-button-default-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-hover($ui-button-default-color, $ui-button-default-background); + } + + &--large { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-states($ui-button-default-color, $ui-button-default-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-disabled($ui-button-default-color, $ui-button-default-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-focus($ui-button-default-color, $ui-button-default-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-active($ui-button-default-color, $ui-button-default-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-hover($ui-button-default-color, $ui-button-default-background); + } + } + + &--small { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-states($ui-button-default-color, $ui-button-default-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-disabled($ui-button-default-color, $ui-button-default-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-focus($ui-button-default-color, $ui-button-default-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-active($ui-button-default-color, $ui-button-default-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-hover($ui-button-default-color, $ui-button-default-background); + } + } + + &--extra-small { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-states($ui-button-default-color, $ui-button-default-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-disabled($ui-button-default-color, $ui-button-default-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-hover($ui-button-default-color, $ui-button-default-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-active($ui-button-default-color, $ui-button-default-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-hover($ui-button-default-color, $ui-button-default-background); + } + } + } + + &--primary { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-states($ui-button-primary-color, $ui-button-primary-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-disabled($ui-button-primary-color, $ui-button-primary-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-focus($ui-button-primary-color, $ui-button-primary-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-active($ui-button-primary-color, $ui-button-primary-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-hover($ui-button-primary-color, $ui-button-primary-background); + } + + &--large { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-states($ui-button-primary-color, $ui-button-primary-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-disabled($ui-button-primary-color, $ui-button-primary-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-focus($ui-button-primary-color, $ui-button-primary-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-active($ui-button-primary-color, $ui-button-primary-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-hover($ui-button-primary-color, $ui-button-primary-background); + } + } + + &--small { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-states($ui-button-primary-color, $ui-button-primary-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-disabled($ui-button-primary-color, $ui-button-primary-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-focus($ui-button-primary-color, $ui-button-primary-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-active($ui-button-primary-color, $ui-button-primary-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-hover($ui-button-primary-color, $ui-button-primary-background); + } + } + + &--extra-small { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-states($ui-button-primary-color, $ui-button-primary-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-disabled($ui-button-primary-color, $ui-button-primary-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-focus($ui-button-primary-color, $ui-button-primary-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-active($ui-button-primary-color, $ui-button-primary-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-hover($ui-button-primary-color, $ui-button-primary-background); + } + } + } + + &--success { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-states($ui-button-success-color, $ui-button-success-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-disabled($ui-button-success-color, $ui-button-success-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-focus($ui-button-success-color, $ui-button-success-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-active($ui-button-success-color, $ui-button-success-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-hover($ui-button-success-color, $ui-button-success-background); + } + + &--large { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-states($ui-button-success-color, $ui-button-success-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-disabled($ui-button-success-color, $ui-button-success-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-focus($ui-button-success-color, $ui-button-success-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-active($ui-button-success-color, $ui-button-success-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-hover($ui-button-success-color, $ui-button-success-background); + } + } + + &--small { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-states($ui-button-success-color, $ui-button-success-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-disabled($ui-button-success-color, $ui-button-success-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-focus($ui-button-success-color, $ui-button-success-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-active($ui-button-success-color, $ui-button-success-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-hover($ui-button-success-color, $ui-button-success-background); + } + } + + &--extra-small { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-states($ui-button-success-color, $ui-button-success-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-disabled($ui-button-success-color, $ui-button-success-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-focus($ui-button-success-color, $ui-button-success-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-active($ui-button-success-color, $ui-button-success-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-hover($ui-button-success-color, $ui-button-success-background); + } + } + } + + &--info { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-states($ui-button-info-color, $ui-button-info-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-disabled($ui-button-info-color, $ui-button-info-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-focus($ui-button-info-color, $ui-button-info-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-active($ui-button-info-color, $ui-button-info-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-hover($ui-button-info-color, $ui-button-info-background); + } + + &--large { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-states($ui-button-info-color, $ui-button-info-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-disabled($ui-button-info-color, $ui-button-info-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-focus($ui-button-info-color, $ui-button-info-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-active($ui-button-info-color, $ui-button-info-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-hover($ui-button-info-color, $ui-button-info-background); + } + } + + &--small { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-states($ui-button-info-color, $ui-button-info-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-disabled($ui-button-info-color, $ui-button-info-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-focus($ui-button-info-color, $ui-button-info-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-active($ui-button-info-color, $ui-button-info-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-hover($ui-button-info-color, $ui-button-info-background); + } + } + + &--extra-small { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-states($ui-button-info-color, $ui-button-info-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-disabled($ui-button-info-color, $ui-button-info-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-focus($ui-button-info-color, $ui-button-info-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-active($ui-button-info-color, $ui-button-info-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-hover($ui-button-info-color, $ui-button-info-background); + } + } + } + + &--warning { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-states($ui-button-warning-color, $ui-button-warning-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-disabled($ui-button-warning-color, $ui-button-warning-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-focus($ui-button-warning-color, $ui-button-warning-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-active($ui-button-warning-color, $ui-button-warning-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-hover($ui-button-warning-color, $ui-button-warning-background); + } + + &--large { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-states($ui-button-warning-color, $ui-button-warning-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-disabled($ui-button-warning-color, $ui-button-warning-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-focus($ui-button-warning-color, $ui-button-warning-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-active($ui-button-warning-color, $ui-button-warning-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-hover($ui-button-warning-color, $ui-button-warning-background); + } + } + + &--small { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-states($ui-button-warning-color, $ui-button-warning-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-disabled($ui-button-warning-color, $ui-button-warning-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-focus($ui-button-warning-color, $ui-button-warning-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-active($ui-button-warning-color, $ui-button-warning-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-hover($ui-button-warning-color, $ui-button-warning-background); + } + } + + &--extra-small { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-states($ui-button-warning-color, $ui-button-warning-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-disabled($ui-button-warning-color, $ui-button-warning-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-focus($ui-button-warning-color, $ui-button-warning-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-active($ui-button-warning-color, $ui-button-warning-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-hover($ui-button-warning-color, $ui-button-warning-background); + } + } + } + + &--danger { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-states($ui-button-danger-color, $ui-button-danger-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-disabled($ui-button-danger-color, $ui-button-danger-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-focus($ui-button-danger-color, $ui-button-danger-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-active($ui-button-danger-color, $ui-button-danger-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-default); + @include ui-button-state-hover($ui-button-danger-color, $ui-button-danger-background); + } + + &--large { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-states($ui-button-danger-color, $ui-button-danger-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-disabled($ui-button-danger-color, $ui-button-danger-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-focus($ui-button-danger-color, $ui-button-danger-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-active($ui-button-danger-color, $ui-button-danger-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-large); + @include ui-button-state-hover($ui-button-danger-color, $ui-button-danger-background); + } + } + + &--small { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-states($ui-button-danger-color, $ui-button-danger-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-disabled($ui-button-danger-color, $ui-button-danger-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-focus($ui-button-danger-color, $ui-button-danger-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-active($ui-button-danger-color, $ui-button-danger-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-small); + @include ui-button-state-hover($ui-button-danger-color, $ui-button-danger-background); + } + } + + &--extra-small { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-states($ui-button-danger-color, $ui-button-danger-background); + + &--disabled { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-disabled($ui-button-danger-color, $ui-button-danger-background); + } + + &--focus { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-focus($ui-button-danger-color, $ui-button-danger-background); + } + + &--active { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-active($ui-button-danger-color, $ui-button-danger-background); + } + + &--hover { + @include ui-button(); + @include ui-button-sizes($ui-button-extra-small); + @include ui-button-state-hover($ui-button-danger-color, $ui-button-danger-background); + } + } + } +} diff --git a/scss/atoms/buttons/_mixins.scss b/scss/atoms/buttons/_mixins.scss new file mode 100644 index 0000000..b53b30a --- /dev/null +++ b/scss/atoms/buttons/_mixins.scss @@ -0,0 +1,85 @@ +/* +* ========================================================================== +* Buttons (Mixins) +* ========================================================================== +*/ + +@mixin ui-button() { + cursor: pointer; + display: inline-block; + font-weight: $ui-button-font-weight; + margin: $ui-button-margin; + text-align: center; + text-decoration: none; + text-transform: $ui-button-text-transform; + vertical-align: middle; + white-space: nowrap; +} + +@mixin ui-button-sizes($size) { + border-radius: map-get( $size, border-radius ); + font-size: map-get( $size, font-size ); + line-height: map-get( $size, line-height ); + padding: map-get( $size, padding ); +} + +@mixin ui-button-states($color, $bgcolor) { + background: $bgcolor; + border: $ui-button-border-width solid darken($bgcolor, 10%); + color: $color; + + &:active { + @include ui-button-state-active($color, $bgcolor); + } + &:focus { + @include ui-button-state-focus($color, $bgcolor); + } + &:hover { + @include ui-button-state-active($color, $bgcolor); + } + &:disabled { + @include ui-button-state-disabled($color, $bgcolor); + } + /** + * This triggers 'unqualified-attributes' in csslint + * &[aria-disabled="true"] { + * @include ui-button-state-disabled($color, $bgcolor); + * } + **/ +} + +@mixin ui-button-state-default($color, $bgcolor) { + background: $bgcolor; + border: $ui-button-border-width solid darken($bgcolor, 10%); + color: $color; +} + +@mixin ui-button-state-active($color, $bgcolor) { + background: darken($bgcolor, 20%); + border: $ui-button-border-width solid darken($bgcolor, 30%); + color: $color; +} + +@mixin ui-button-state-focus($color, $bgcolor) { + background: darken($bgcolor, 15%); + border: $ui-button-border-width solid darken($bgcolor, 25%); + color: $color; +} + +@mixin ui-button-state-hover($color, $bgcolor) { + background: darken($bgcolor, 10%); + border: $ui-button-border-width solid darken($bgcolor, 20%); + color: $color; +} + +@mixin ui-button-state-disabled($color, $bgcolor) { + background: $bgcolor; + border: $ui-button-border-width solid darken($bgcolor, 10%); + color: $color; + cursor: default; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity="+$ui-button-disabled-opacity+")"; + filter: alpha(opacity=$ui-button-disabled-opacity); + -moz-opacity: $ui-button-disabled-opacity; + -khtml-opacity: $ui-button-disabled-opacity; + opacity: $ui-button-disabled-opacity; +} diff --git a/scss/lint.scss b/scss/lint.scss index d3cf487..c29923b 100644 --- a/scss/lint.scss +++ b/scss/lint.scss @@ -15,7 +15,8 @@ @import "atoms/icons/icons", - "atoms/typography/typography"; + "atoms/typography/typography", + "atoms/buttons/buttons"; @import "views/main"; diff --git a/scss/style.scss b/scss/style.scss index f297126..048218a 100644 --- a/scss/style.scss +++ b/scss/style.scss @@ -7,7 +7,8 @@ @import "atoms/icons/icons", - "atoms/typography/typography"; + "atoms/typography/typography", + "atoms/buttons/buttons"; @import "views/main"; diff --git a/scss/variables/buttons.js b/scss/variables/buttons.js new file mode 100644 index 0000000..9104176 --- /dev/null +++ b/scss/variables/buttons.js @@ -0,0 +1,120 @@ +( function ( root, factory ) { + if ( typeof define === "function" && define.amd ) { + define( [ "./chassis" ], factory ); + } else if (typeof exports === "object") { + module.exports = factory( require("./chassis") ); + } else { + root.chassis = factory( root.chassis ); + } +}(this, function ( chassis ) { + + +chassis.uiButton = { + "ui-button-default-color": { + name: "Default Button Color", + value: "#383838" + }, + "ui-button-default-background": { + name: "Default Button Background", + value: "#ffffff" + }, + "ui-button-primary-color": { + name: "Primary Button Color", + value: "#ffffff" + }, + "ui-button-primary-background": { + name: "Primary Button Background", + value: "#337ab7" + }, + "ui-button-success-color": { + name: "Success Button Color", + value: "#ffffff" + }, + "ui-button-success-background": { + name: "Success Button Background", + value: "#5cb85c" + }, + "ui-button-info-color": { + name: "Info Button Color", + value: "#ffffff" + }, + "ui-button-info-background": { + name: "Info Button Background", + value: "#5bc0de" + }, + "ui-button-warning-color": { + name: "Warning Button Color", + value: "#ffffff" + }, + "ui-button-warning-background": { + name: "Warning Button Background", + value: "#f0ad4e" + }, + "ui-button-danger-color": { + name: "Danger Button Color", + value: "#ffffff" + }, + "ui-button-danger-background": { + name: "Danger Button Background", + value: "#d9534f" + }, + "ui-button-disabled-opacity": { + name: "Disabled Button Opacity", + value: .6 + }, + "ui-button-font-weight": { + name: "Button Font Weight", + value: 500 + }, + "ui-button-margin": { + name: "Button Margin", + value: ".25em" + }, + "ui-button-text-transform": { + name: "Button Text Transform", + value: "none" + }, + "ui-button-border-width": { + name: "Button Border Width", + value: "1px" + }, + "ui-button-large": { + name: "Large Button", + value: { + "border-radius": "2px", + "font-size": "16px", + "line-height": "16px", + "padding": ".75em 1.25em" + } + }, + "ui-button-default": { + name: "Default Button", + value: { + "border-radius": "2px", + "font-size": "14px", + "line-height": "14px", + "padding": ".5em 1em" + } + }, + "ui-button-small": { + name: "Small Button", + value: { + "border-radius": "2px", + "font-size": "12px", + "line-height": "12px", + "padding": ".35em .75em" + } + }, + "ui-button-extra-small": { + name: "Extra Small Button", + value: { + "border-radius": "2px", + "font-size": "12px", + "line-height": "12px", + "padding": ".2em .35em" + } + }, +}; + +return chassis; +} ) ); diff --git a/tasks/options/csslint.js b/tasks/options/csslint.js index 3e6c0d6..41c6c36 100644 --- a/tasks/options/csslint.js +++ b/tasks/options/csslint.js @@ -1,3 +1,6 @@ module.exports = { + options: { + csslintrc: ".csslintrc" + }, src: [ "dist/css/*.css" ] -}; \ No newline at end of file +};