blob: 1d900367f6d5dc00b713a7bcdb1001f3bf2483bc [file] [log] [blame]
Yoshie Muranaka6f7ec802019-06-24 14:35:41 -05001$btn-primary__bg: $base-01--03;
2$btn-primary__bg--hover: $base-01--04;
3$btn-primary__bg--disabled: $base-02--04;
4$btn-primary__txt: $base-02--08;
5$btn-primary__txt--disabled: $base-02--03;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -05006
Yoshie Muranaka6f7ec802019-06-24 14:35:41 -05007$btn-secondary__bg: $base-02--08;
8$btn-secondary__txt: $base-01--03;
9$btn-secondary__txt--hover: $base-01--04;
10$btn-secondary__txt--disabled: $base-02--03;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050011
12$btn-tertiary__bg: transparent;
Yoshie Muranaka6f7ec802019-06-24 14:35:41 -050013$btn-tertiary__txt: $base-01--03;
14$btn-tertiary__txt--hover: $base-01--04;
15$btn-tertiary__txt--disabled: $base-02--03;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050016
17/***
18Include .btn class in addition to the button type.
19These styles provide structural and base properties
20shared across all buttons. The additional button
21type (.btn-primary, .btn-secondary) will provide color
22properties
23***/
24button,
25.btn,
26[type='button'] {
Michael Davis51946552017-05-01 10:30:38 -050027 @include fontFamilyBold;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050028 @include fastTransition-all;
29 border-style: solid;
30 border-width: 2px;
31 border-color: transparent;
32 font-size: 1em;
Michael Davis19475752017-02-23 18:30:23 -060033 text-transform: none;
Yoshie Muranaka5bd1dec2019-05-16 13:06:32 -050034 border-radius: 0;
35 padding: .5em 1em;
36 line-height: 1;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050037 display: inline-block;
38 cursor: pointer;
39 &[disabled],
Iftekharul Islam8947e702017-07-27 10:28:07 -050040 &.disabled {
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050041 opacity: 1;
42 cursor: default;
Michael Davis19475752017-02-23 18:30:23 -060043 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050044 &.full-width {
45 width: 100%;
Michael Davis0f03ad12017-02-27 16:54:18 -060046 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050047 .icon,
beccabroek44da4712019-03-20 13:24:23 -050048 i {
49 //button symbol
Michael Davisc5626182017-03-10 15:48:05 -060050 font-style: normal;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050051 font-weight: normal;
Michael Davisc5626182017-03-10 15:48:05 -060052 text-transform: none;
Michael Davisc5626182017-03-10 15:48:05 -060053 display: inline-block;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050054 margin-right: 0.3em;
55 vertical-align: bottom;
Michael Davisc5626182017-03-10 15:48:05 -060056 }
beccabroek44da4712019-03-20 13:24:23 -050057 img {
Yoshie Muranaka5bd1dec2019-05-16 13:06:32 -050058 width: 1.5em;
59 height: 1.5em;
Michael Davisc5626182017-03-10 15:48:05 -060060 display: inline-block;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050061 margin-right: 0.5em;
Michael Davisc5626182017-03-10 15:48:05 -060062 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050063 svg {
64 height: 1.2em;
65 width: auto;
beccabroek309b5da2018-11-07 12:22:31 -060066 max-width: 100%;
Michael Davisc5626182017-03-10 15:48:05 -060067 }
Michael Davis19475752017-02-23 18:30:23 -060068}
Michael Davis51946552017-05-01 10:30:38 -050069
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050070/***
71Use for the primary use-case/s that is non-destructive.
72e.g. directing to a new page, a call to action
73***/
74.btn-primary {
75 background-color: $btn-primary__bg;
76 border-color: $btn-primary__bg;
77 color: $btn-primary__txt;
Michael Davis51946552017-05-01 10:30:38 -050078 &:hover {
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050079 background-color: $btn-primary__bg--hover;
80 border-color: $btn-primary__bg--hover;
Michael Davis51946552017-05-01 10:30:38 -050081 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050082 &[disabled],
83 &.disabled {
84 background: $btn-primary__bg--disabled;
85 border-color: $btn-primary__bg--disabled;
86 color: $btn-primary__txt--disabled;
87 .icon {
88 fill: $btn-primary__txt--disabled;
89 }
Michael Davis51946552017-05-01 10:30:38 -050090 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050091 .icon {
92 fill: $btn-primary__txt;
Michael Davis51946552017-05-01 10:30:38 -050093 }
beccabroek44da4712019-03-20 13:24:23 -050094}
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050095
96/***
97Secondary buttons are actions that fall secondary or
98of less priority to primary buttons.
99These usually come coupled with a primary.
100***/
101.btn-secondary {
102 background-color: $btn-secondary__bg;
103 border-color: $btn-secondary__txt;
104 color: $btn-secondary__txt;
105 &:hover {
106 background-color: $btn-secondary__bg;
107 border-color: $btn-secondary__txt--hover;
108 color: $btn-secondary__txt--hover;
109 .icon {
110 fill: $btn-secondary__txt--hover;
111 }
112 }
113 &[disabled],
114 &.disabled {
115 background-color: $btn-secondary__bg;
116 border-color: $btn-secondary__txt--disabled;
117 color: $btn-secondary__txt--disabled;
118 .icon {
119 fill: $btn-secondary__txt--disabled;
120 }
121 }
122 .icon {
123 fill: $btn-secondary__txt;
124 }
125}
126
127/***
128Tertiary text buttons are used to identify less pressing or
129optional actions given on a page.
130***/
131.btn-tertiary {
132 background-color: $btn-tertiary__bg;
133 border-color: $btn-tertiary__bg;
134 color: $btn-tertiary__txt;
135 &:hover {
136 color: $btn-tertiary__txt--hover;
137 .icon {
138 fill: $btn-tertiary__txt--hover;
139 }
140 }
141 &[disabled],
142 &.disabled {
143 color: $btn-tertiary__txt--disabled;
144 .icon {
145 fill: $btn-tertiary__txt--disabled;
146 }
147 }
148 .icon {
149 fill: $btn-tertiary__txt;
150 }
151}