blob: 25e5a91806689ede1d307658c57443297ae57e26 [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;
Yoshie Muranakafa562732019-07-17 11:23:15 -050056 margin-left: -0.5em;
Michael Davisc5626182017-03-10 15:48:05 -060057 }
beccabroek44da4712019-03-20 13:24:23 -050058 img {
Yoshie Muranaka5bd1dec2019-05-16 13:06:32 -050059 width: 1.5em;
60 height: 1.5em;
Michael Davisc5626182017-03-10 15:48:05 -060061 display: inline-block;
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050062 margin-right: 0.5em;
Michael Davisc5626182017-03-10 15:48:05 -060063 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050064 svg {
65 height: 1.2em;
66 width: auto;
beccabroek309b5da2018-11-07 12:22:31 -060067 max-width: 100%;
Michael Davisc5626182017-03-10 15:48:05 -060068 }
Michael Davis19475752017-02-23 18:30:23 -060069}
Michael Davis51946552017-05-01 10:30:38 -050070
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050071/***
72Use for the primary use-case/s that is non-destructive.
73e.g. directing to a new page, a call to action
74***/
75.btn-primary {
76 background-color: $btn-primary__bg;
77 border-color: $btn-primary__bg;
78 color: $btn-primary__txt;
Michael Davis51946552017-05-01 10:30:38 -050079 &:hover {
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050080 background-color: $btn-primary__bg--hover;
81 border-color: $btn-primary__bg--hover;
Michael Davis51946552017-05-01 10:30:38 -050082 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050083 &[disabled],
84 &.disabled {
85 background: $btn-primary__bg--disabled;
86 border-color: $btn-primary__bg--disabled;
87 color: $btn-primary__txt--disabled;
88 .icon {
89 fill: $btn-primary__txt--disabled;
90 }
Michael Davis51946552017-05-01 10:30:38 -050091 }
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050092 .icon {
93 fill: $btn-primary__txt;
Michael Davis51946552017-05-01 10:30:38 -050094 }
beccabroek44da4712019-03-20 13:24:23 -050095}
Yoshie Muranakac86ce3c2019-06-05 12:30:30 -050096
97/***
98Secondary buttons are actions that fall secondary or
99of less priority to primary buttons.
100These usually come coupled with a primary.
101***/
102.btn-secondary {
103 background-color: $btn-secondary__bg;
104 border-color: $btn-secondary__txt;
105 color: $btn-secondary__txt;
106 &:hover {
107 background-color: $btn-secondary__bg;
108 border-color: $btn-secondary__txt--hover;
109 color: $btn-secondary__txt--hover;
110 .icon {
111 fill: $btn-secondary__txt--hover;
112 }
113 }
114 &[disabled],
115 &.disabled {
116 background-color: $btn-secondary__bg;
117 border-color: $btn-secondary__txt--disabled;
118 color: $btn-secondary__txt--disabled;
119 .icon {
120 fill: $btn-secondary__txt--disabled;
121 }
122 }
123 .icon {
124 fill: $btn-secondary__txt;
125 }
126}
127
128/***
129Tertiary text buttons are used to identify less pressing or
130optional actions given on a page.
131***/
132.btn-tertiary {
133 background-color: $btn-tertiary__bg;
134 border-color: $btn-tertiary__bg;
135 color: $btn-tertiary__txt;
136 &:hover {
137 color: $btn-tertiary__txt--hover;
138 .icon {
139 fill: $btn-tertiary__txt--hover;
140 }
141 }
142 &[disabled],
143 &.disabled {
144 color: $btn-tertiary__txt--disabled;
145 .icon {
146 fill: $btn-tertiary__txt--disabled;
147 }
148 }
149 .icon {
150 fill: $btn-tertiary__txt;
151 }
152}